
저는 변수를 선언하고 조작하는 방법을 포함하여 기본 사항을 배우고 있습니다. 내가 이름을 지정한 모든 변수의 목록을 표시하는 간단한 방법이 있습니까? (검색을 통해 찾은 모든 것은 환경 변수에 대해서만 이야기합니다. 내가 찾고 있는 것일 수도 있지만 아닐 수도 있습니다.)
답변1
자체를 실행하면 declare
모든 환경 변수 목록이 제공됩니다.현재 쉘에서, 귀하가 직접 정의한 항목을 포함합니다. 또한 -p
건너뛰는 옵션을 사용하지 않는 한 모든 기능이 포함되지만 약간의 노이즈가 추가됩니다.
답변2
변수에는 2가지 유형이 있습니다(실제로는 그보다 더 많지만 이 컨텍스트에서는 2개만). 개인용과 내보낸 변수입니다.
개인 변수는 쉘(또는 스크립트)에서 사용할 수 있지만 쉘(또는 스크립트)에 의해 시작된 프로그램에서는 사용할 수 없는 변수입니다. , 또는 를
사용하여 내보낸 변수를 포함한 모든 변수 목록을 가져올 수 있습니다 . Bash에서는 3개 모두 동일한 작업을 수행합니다.declare
typeset
set
내보낸 변수는 셸이나 셸에서 실행되는 프로그램 모두에서 사용할 수 있습니다.
를 사용하여 내보낸 변수 목록을 가져올 수 있습니다env
.
주의해야 할 주요 사항 중 하나는 다음과 같은 작업을 수행할 때입니다.
FOO="bar"
echo "$FOO"
$FOO
비공개/내보낼 수 없는 변수입니다. 쉘은 에 전달되기 전에 실제로 $FOO
으로 확장됩니다 . 그래서 실제로 로 불려지고 있습니다 .bar
echo
echo
echo "bar"
export FOO
또는 를 수행하여 변수를 내보낼 수 있습니다 export FOO="bar"
.
또한 명령 시작 부분에 변수를 추가하여 프로그램에 대한 단일 호출에 대한 변수를 내보낼 수 있습니다. 예를 들어
FOO="bar" cmd1
cmd2
cmd1
액세스할 수는 있지만 $FOO
액세스 cmd2
할 수는 없습니다.