LOCK_FD=200
LOCK_FILE=/tmp/lock-file
exec ${LOCK_FD}>${LOCK_FILE}
오류가 발생했습니다.
exec: 200 not found
그러나 이것은 작동합니다
LOCK_FD=200
LOCK_FILE=/tmp/lock-file
eval "exec ${LOCK_FD}>${LOCK_FILE}"
이유를 아시나요?
답변1
변수가 확장되기 전에 리디렉션이 수행되기 때문인 것 같습니다. man bash
어느 것이 먼저 완료되었는지 확실하지 않습니다.
리디렉션 명령이 실행되기 전에 해당 입력과 출력이 리디렉션될 수 있습니다. . .
EXPANSION 확장은 명령줄이 단어로 분할된 후에 수행됩니다.
리디렉션을 완료하고 제거한 후 존재하지 않는 작업을 exec
실행하려고 하므로 오류 메시지가 나타납니다.200