저는 쉘 스크립팅을 처음 접하는데 왜 다음 코드 조각이 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에서도 작동합니다.