如何在 shell 脚本中指定变量中提到的文件夹的兄弟文件夹?
How to specify a sibling folder of a folder mentioned in a variable in a shell script?
我有一个文件夹路径存储在变量 ${PROJECT_DIR} 中。
我想向上导航到它的父文件夹,然后向下导航到名为 "Texture Packer" 的文件夹,即 ${PROJECT_DIR} 和 "Texture Packer" 是兄弟姐妹。
我如何在 shell 脚本中指定它?
到目前为止我有:
TP=/usr/local/bin/TexturePacker
# create all assets from tps files
${TP} "${PROJECT_DIR}/../Texture Packer/*.tps"
但这是不正确的,因为 Texture Packer 无法检测路径中的文件。错误信息显示:
TexturePacker:: error: Can't open file
/Users/john/Documents/MyProj/proj.ios_mac/../Texture Packer/*.tps for
reading: No such file or directory
编辑:以下似乎有效但不干净:
#! /bin/sh
TP=/usr/local/bin/TexturePacker
if [ "${ACTION}" = "clean" ]
then
# remove sheets - please add a matching expression here
# Some unrelated stuff
else
cd ${PROJECT_DIR}
cd ..
cd "Texture Packer"
# create all assets from tps files
${TP} *.tps
fi
exit 0
你走在正确的轨道上;问题是通配符(如 *.tps
)在引号中时不会展开。解决方案是将那部分路径留在引号之外:
${TP} "${PROJECT_DIR}/../Texture Packer"/*.tps
顺便说一句,我几乎总是建议不要在脚本中使用 cd
。很容易忘记当前目录在脚本中的不同位置的位置,或者发生错误并且脚本的其余部分在错误的位置运行,或者......此外,您正在使用的任何相对路径(例如,用户提供的参数)每次 cd
时都会改变含义。基本上,这是让事情变得异常错误的机会。
我有一个文件夹路径存储在变量 ${PROJECT_DIR} 中。 我想向上导航到它的父文件夹,然后向下导航到名为 "Texture Packer" 的文件夹,即 ${PROJECT_DIR} 和 "Texture Packer" 是兄弟姐妹。 我如何在 shell 脚本中指定它? 到目前为止我有:
TP=/usr/local/bin/TexturePacker
# create all assets from tps files
${TP} "${PROJECT_DIR}/../Texture Packer/*.tps"
但这是不正确的,因为 Texture Packer 无法检测路径中的文件。错误信息显示:
TexturePacker:: error: Can't open file /Users/john/Documents/MyProj/proj.ios_mac/../Texture Packer/*.tps for reading: No such file or directory
编辑:以下似乎有效但不干净:
#! /bin/sh
TP=/usr/local/bin/TexturePacker
if [ "${ACTION}" = "clean" ]
then
# remove sheets - please add a matching expression here
# Some unrelated stuff
else
cd ${PROJECT_DIR}
cd ..
cd "Texture Packer"
# create all assets from tps files
${TP} *.tps
fi
exit 0
你走在正确的轨道上;问题是通配符(如 *.tps
)在引号中时不会展开。解决方案是将那部分路径留在引号之外:
${TP} "${PROJECT_DIR}/../Texture Packer"/*.tps
顺便说一句,我几乎总是建议不要在脚本中使用 cd
。很容易忘记当前目录在脚本中的不同位置的位置,或者发生错误并且脚本的其余部分在错误的位置运行,或者......此外,您正在使用的任何相对路径(例如,用户提供的参数)每次 cd
时都会改变含义。基本上,这是让事情变得异常错误的机会。