在 .command 文件中指定多个 cd 命令

在 .command 文件中指定多个 cd 命令

.command在 Mac 服务器上设置了一个非常小的文件,基本上只是用来启动 Python 进程。对于其他人来说,这比打开终端、输入“python”然后拖动文件更直观。

但是这也要求我先更改目录,因为脚本将对服务器上的文件进行操作,并且需要从它包含的同一目录进行操作。问题是,由于服务器的设置方式,需要使用此功能的两个人对文件的路径不同。

由于我无法将服务器更改为具有相同的路径,因此我尝试使用cd命令两个都路径,这似乎确实有效。由于一条路径始终不存在,而另一条路径将存在,因此一条命令失败,而另一条命令运行。

cd /Volumes/Server/scripts/Script
cd /Volumes/Macintosh\ HD2/Server/Scripts/Script
python Process.py

这将给我这样的答复:

/Volumes/Server/scripts/Script ; exit;
/Volumes/Macintosh\ HD2/Server/Scripts/Script: line 2: cd: /Volumes/Macintosh\ HD2/Server/Scripts/Script: No such file or directory
### My script runs here with the correct path ###

这似乎可行,但我知道,如果出于某种原因,一个人将这两条路径都视为有效路径,我就会遇到麻烦。我也不知道这是否会导致其他问题。即使错误看起来悄无声息地过去了,我也不能确定它们永远不会造成问题。所以我的问题有两个部分,以这种方式使用命令有什么缺点,以及是否有更好的方法来设置这个.command文件?

答案1

在尝试进入某些目录之前,我会使用一些逻辑来确定它们是否存在:

if [ -d "$DIRECTORY" ]; then
    # Control will enter here if $DIRECTORY exists.
fi

(看https://stackoverflow.com/questions/59838/check-if-a-directory-exists-in-a-shell-script

这样,您可以控制当一个目录存在、两个目录存在或两个目录都不存在时的行为。

相关内容