次のbashスクリプトがあります。
テストファイル
#!/bin/bash
locks="/var/lock/userlocks"
lock=`basename "$0"`.exclusivelock
(
flock -x -w 5 200 || { echo "exiting. $lock already in use."; exit 1; }
echo "$lock acquired."
#do stuff
) 200>$locks/$lock
次のように、すべての出力をログファイルに送信できます。
$ test.sh >> logfile.log 2>&1
しかし、出力リダイレクトをこのようなスクリプトに入れることはできますか?
test2.sh
#!/bin/bash
locks="/var/lock/userlocks"
lock=`basename "$0"`.exclusivelock
(
flock -x -w 5 200 || { echo "exiting. $lock already in use."; exit 1; }
echo "$lock acquired."
#do stuff
) 200>$locks/$lock >> logfile.log 2>&1
これで、リダイレクトなしでスクリプトを呼び出すことができます。
$ test2.sh