スクリプトを作成していますが、別のファイルが存在する場合はそのファイルに書き込みたいのですが。
traceroute google.com > trace.log
どなたか助けていただければ幸いです。
また、私は初心者なので、例があると助かります。
ありがとうございます。
答え1
1 つのアプローチは次のとおりです。
#!/bin/sh
n=
while true
do
fname="trace$n.log"
[ -f "$fname" ] || break
n=$(($n+1))
done
traceroute google.com >"$fname"
上記は、、、などのように、可能性のある各名前を順番にループします。存在しない名前が最初にtrace.log
見つかっtrace1.log
たtrace2.log
ときに、ループを終了してtraceroute
コマンドを実行します。
注意: このスクリプトは競合状態を処理しようとしません。特に、スクリプトがファイルの存在を確認した後、このスクリプトがそのファイルを書き込み用に開く前に、瞬間的な瞬間があります。その瞬間に、実行中の別のプログラムがファイルを作成しようとする可能性があります。万が一これが懸念事項になる場合は、より複雑なアプローチが必要になります。