Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Shell脚本不';t将参数传递给应用程序_Macos_Bash_Shell - Fatal编程技术网

Macos Shell脚本不';t将参数传递给应用程序

Macos Shell脚本不';t将参数传递给应用程序,macos,bash,shell,Macos,Bash,Shell,我有一行shell脚本: "/Applications/TexturePacker.app/Contents/MacOS/TexturePacker" "PSD_files/default_atlas/" --sheet "default_atlas.png" --format xml --data "default_atlas.xml" --premultiply-alpha 当我直接运行该命令时,它会按预期工作-TexturePacker应用程序是使用指定的参数启动的,但是当我将完全相同的

我有一行shell脚本:

"/Applications/TexturePacker.app/Contents/MacOS/TexturePacker" "PSD_files/default_atlas/" --sheet "default_atlas.png" --format xml --data "default_atlas.xml" --premultiply-alpha
当我直接运行该命令时,它会按预期工作-
TexturePacker
应用程序是使用指定的参数启动的,但是当我将完全相同的行放入.sh文件并执行它时,
TexturePacker
不会收到参数(帮助消息显示为应用程序是在没有参数的情况下启动的)

如何从.sh文件运行相同的命令


PS:我试图添加
#/bin/sh
#/bin/bash
在具有相同结果的行之前…

编辑:正如您在回复中提到的,脚本文件中的行结尾有问题。 当您通过bash-x运行它时,它将在调试模式下运行,这使您可以选择查看shell脚本正在执行的所有操作。 因此,如果仍然有问题,请尝试此操作并复制粘贴其输出

#!/bin/bash -x 
/Applications/TexturePacker.app/Contents/MacOS/TexturePacker PSD_files/default_atlas/ --sheet "default_atlas.png" --format xml --data "default_atlas.xml" --premultiply-alpha

换句话说,代码没有问题,只有文件格式有问题。

脚本文件是使用Adobe JSX文件类创建的,该类插入了Windows样式的行尾,即使
lineFeed
属性设置为“Macintosh”。这使shell感到困惑,输出完全丢失(即使在调试模式下)

如果我添加#/bin/bash-x输出完全丢失(即使对于简单的echo“a”),这意味着您有一个更严重的问题。如果以交互方式执行测试脚本:bash-x testscript.sh,会发生什么?(您使用的是/bin/bash,对吗?不是/bin/sh?)我想我发现了问题,我正在使用Adobe的jsx来编写文件,似乎它将行尾转换为Windows样式,这让bash感到困惑……这是一个澄清的请求,不是一个答案。啊,谢谢,我不知道,但看到代码没有问题,我修改了我的回答。固定:p