다음을 읽기 전용으로 정의했습니다.
readonly root_command='sudo -s'
나중에 내 스크립트에서 다음과 같이 사용되었습니다.
exec $root_command
내 질문은 아마도 내가 그럴 수도 있다는 것입니다.느린아니면 뭔가, 하지만 난 완전히 이해가 안 돼요POSIX 매뉴얼 페이지, 예를 들어 작은따옴표를 사용할 수 있나요? 아니면 큰따옴표를 사용해야 하나요? -p
그런 옵션의 목적은 무엇인가요?
감사해요.
답변1
POSIX에 따르면에는 readonly
두 가지 형식이 있습니다.
readonly var
, 이는 쉘 변수를var
읽기 전용으로 표시하고 동시에 선택적으로var
( )에 값을 할당합니다.readonly var=value
readonly -p
, 모든 읽기 전용 변수의 이름과 값을 인쇄합니다.
이들은 결합되지 않습니다. 현재 읽기 전용 변수를 모두 보는 데 사용할 수 있으며 , 변수를 읽기 전용으로 표시하는 데 -p
사용할 수도 있습니다 ( ).readonly
-p
변수를 읽기 전용으로 표시하면 값을 지정할 수도 있습니다(나중에 변경할 수 없으므로 이 값은 영구적인 값이 됩니다). 이는 여느 변수 할당과 동일하며, 단어가 있는 var=value
곳에 형태를 취하므로 value
평소와 동일한 규칙(변수 확장을 방지하려면 작은 따옴표, 변수 확장을 허용하려면 큰 따옴표 등)을 사용하여 적절하게 인용해야 합니다. 필요합니다. ).
이는 의 exec $root_command
현재 값에 따라 달라지며 $IFS
, 명령을 저장하려면 변수보다는 함수를 사용하는 것이 더 좋습니다.