このようなファイル名があります。
/etc/auto.abc on server 1
/etc/auto.def on server 2
/etc/auto.ghi on server 1
すべてのサーバー用のスクリプトを作成しており、ファイルをキャプチャしたいと思います。
例: cat/etc/auto.abc
または/etc/auto.def
。/etc/auto.ghi
存在するファイルをインポートできる必要があります。
ありがとう、
答え1
このような:
if [[ $(find . -name "auto*" -type f -maxdepth 1 -printf '\n' | wc -l) -eq 1 ]]
then
cat auto*
else
echo there are more files that match 'auto*'
fi
-printf '\n'
改行文字を含むファイル名を正しく処理することは可能ですか?この回答)。else
2つ以上のファイルがパターンと一致する場合は、このケースを処理する必要があります。auto*
ここで行うことにしました。
答え2
ファイルの操作を実行する前に、スクリプトを使用してファイルが存在するかどうかを確認するにはどうすればよいですか?
#!/bin/bash
if test -f "/etc/auto.def"; then cat /etc/auto.def;
elif test -f "/etc/auto.ghi"; then cat /etc/auto.ghi;
elif test -f "/etc/auto.abc"; then cat /etc/auto.abc;fi
源泉:
http://www.shellhacks.com/en/HowTo-Check-If-a-File-Exists
http://www.thegeekstuff.com/2010/06/bash-if-statement-examples/
答え3
使用を検討しましたか?ファイル全体?
最も緩い方法は次のとおりです。
cat /etc/auto*
しかし、あなたの場合、より良いものは次のとおりです。
cat /etc/auto.???
確かにもしこのglobと一致する他の望ましくないファイルがあるかもしれません。もし3つのファイルのうち1つ以上が存在する可能性があり(1つだけが必要です)、これらすべての可能性を考慮するわけではありません。しかし、それは確かに最も単純な方法。