$ declare -p ar
declare -a ar='()'
$ declare -p mmm
declare -- mmm="hello"
여기서는 무엇을 의미하나요 --
? 그것의 속성 중 일부를 설명합니까 mmm
?
감사해요.
답변1
이는 단지 출력 형식의 일관성을 위한 것입니다. 첫 번째 필드는 text declare
이고 세 번째 필드는 입니다 var=value
.
따라서 특정 속성이 없는 변수의 경우 명령에는 "속성 없음"을 표시하는 방법이 필요합니다.--
예를 들어
bash-4.2$ declare y=100
bash-4.2$ declare -p y
declare -- y="100"
bash-4.2$ declare -l y
bash-4.2$ declare -p y
declare -l y="100"
bash-4.2$ declare +l y
bash-4.2$ declare -p y
declare -- y="100"
결과는 파일에 저장하고 나중에 검색할 수 있습니다.
답변2
답변3
--
옵션의 끝을 표시합니다. 여기서는 중복됩니다(변수 이름은 다음으로 시작하지 않습니다( -
사용자의 로케일이 정의된 병리학적 경우 제외).-
α문자 클래스) 및 어쨌든 플래그가 있는 경우 추가되지 않지만 무해합니다. 코드에 다음이 있기 때문에 거기에 있는 것 같습니다.
printf ("declare -%s ", i ? flags : "-");
다음 명령보다 빠른 입력 속도는 무엇입니까?
if (i)
printf ("declare -%s ", i ? flags : "-");
else
printf ("declare ");
아이러니하게도 에서 bash-2.01
코드는 다음과 같이 변경됩니다.
if (pattr == 0 || posixly_correct == 0)
printf ("declare -%s ", i ? flags : "-");
else if (i)
printf ("%s -%s ", this_command_name, flags);
else
printf ("%s ", this_command_name);
을 피할 때 export
및 와 함께 재사용되지만 그렇지 않습니다 .readonly
--
export var=value
declare -- var=value