web-dev-qa-db-ja.com

シェルスクリプトで特定のフォルダ内のフォルダを確認するにはどうすればよいですか?

私はシェルスクリプトに取り組んでおり、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)には、このフォルダーMAPPED_LOCATION内にこの形式のYYYYMMDDのフォルダーがあります。

今私がやろうとしているのは-pythonスクリプトからfile_timestampを渡すことです。このスクリプトはYYYYMMDDの形式になりますので、これを確認する必要があります。フォルダはMAPPED_LOCATIONフォルダ内にあるか、各マシンにありません。

存在する場合は、各マシンのそのフォルダのフルパスを出力します。それ以外の場合は、ステータスがゼロ以外のシェルスクリプトを終了します。いずれのマシンにも存在しない場合は、このフォルダがゼロ以外のステータスでこのマシンに存在しないというメッセージを表示して、シェルスクリプトを終了します。

シェルスクリプトでこのチェックを行う方法がわかりませんか?

1
SSH
d="${MAPPED_LOCATION}/$(python_script)" 
[ -d "$d" ] && echo "$d" || exit 1
2
mikeserv