我有这个1行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
并获得相同的结果......
答案 0 :(得分:1)
编辑:正如您在回复中提到的,脚本文件中的行结尾存在问题。 当您通过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
换句话说,您的代码没有任何问题,只有您的文件格式。
答案 1 :(得分:1)
脚本文件是使用插入Windows样式行结尾的Adobe JSX File类创建的,即使lineFeed
属性设置为" Macintosh"。这个东西混淆了shell,输出完全丢失了(即使在调试模式下)