私はシェルスクリプトに初めて触れましたが、なぜ次のコードスニペットがzshでは機能しませんが、bashでは機能するのだろうかと思います。同じ部分に対応するzshはありますか?エラーが発生しました。parse error near `200'
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
上記のコードスニペットはsrcからのものです。https://stackoverflow.com/a/13551882/15087532
答え1
fdをハードコードしないでください。シェルに理解して処理させる:
(
typeset fd=
exec {fd}> /tmp/blah.lockfile
flock -e $fd
echo "In critical section"
sleep 5
)
echo "After critical section"
これはBashでも動作します。