我也在研究 shell 脚本和 python 脚本。 Python 脚本将某些参数传递给我的 shell 脚本,然后我在 shell 脚本中使用这些参数。
下面是我的 shell 脚本 -
#!/bin/bash
readonly MACHINES=(machineB machineC)
readonly MAPPED_LOCATION=/bat/peta/t1_snapshot
readonly FILE_TIMESTAMP=$file_timestamp
// old code which I am using to get the full path of the latest folder in each machine
dir1=$(ssh -o "StrictHostKeyChecking no" david@${MACHINES[0]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)
dir2=$(ssh -o "StrictHostKeyChecking no" david@${MACHINES[1]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)
echo $dir1
echo $dir2
// not sure what should I do here?
dir3=$MAPPED_LOCATION/$FILE_TIMESTAMP
在每台机器上,这个文件夹里面(machineB and machineC)
都会有一个这种格式的文件夹。YYYYMMDD
MAPPED_LOCATION
现在我想做的是 - 我file_timestamp
从 python 脚本传递,它将采用这种形式,YYYYMMDD
所以现在我需要检查这个文件夹是否存在MAPPED_LOCATION
于每台机器的文件夹内。
如果存在,则打印出每台计算机的该文件夹的完整路径,否则以非零状态退出 shell 脚本。如果任何一台机器中都不存在该文件夹,我将退出 shell 脚本,并显示一条消息,表明该文件夹不存在于该机器中且状态为非零。
我不确定如何在 shell 脚本中进行此检查?
答案1
d="${MAPPED_LOCATION}/$(python_script)"
[ -d "$d" ] && echo "$d" || exit 1