私もシェルスクリプトとPythonスクリプトを調べています。 Pythonスクリプトは特定のパラメータをシェルスクリプトに渡し、シェルスクリプトでこのパラメータを使用します。
以下は私のシェルスクリプトです -
#!/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
存在する場合は、コンピュータごとにこのフォルダのフルパスを印刷し、そうでない場合はゼロ以外の状態でシェルスクリプトを終了します。両方のコンピュータにフォルダがない場合は、そのコンピュータにフォルダがなく、ステータスがゼロでないというメッセージでシェルスクリプトを終了します。
シェルスクリプトでこのチェックを実行する方法がわかりません。
答え1
d="${MAPPED_LOCATION}/$(python_script)"
[ -d "$d" ] && echo "$d" || exit 1