Macos Shell脚本不';t将参数传递给应用程序
我有一行shell脚本: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应用程序是使用指定的参数启动的,但是当我将完全相同的
"/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