나는 bash 스크립트에 대해 더 많이 배우려고 노력 중이었고 내가 보고 있던 설치 스크립트의 시작 부분에서 이 문장을 발견했습니다.
DIR=${1-${HOME}}
첫째, 이것이 스크립트의 시작 부분이므로 $1이 무엇을 가리킬 수 있는지 이해할 수 없습니다. 나는 $0이 스크립트 자체라는 것을 알고 있습니다. $1은 무슨 뜻인가요?
둘째, $1에서 홈 디렉토리를 뺀 것은 무엇을 의미합니까?
여기서 무슨 일이 일어나고 있는지 설명할 수 있는 사람이 있다면 매우 감사하겠습니다!
감사해요!
(그런데 제가 언급하는 실제 스크립트는 Yin Yang Dark Theme Manager의 설치 스크립트입니다.https://github.com/oskarsh/Yin-Yang/blob/master/install.sh, 도움이 된다면. )
답변1
$1
, $2
, ... 기술적으로 "위치 매개변수"라고 불리는 이들은 스크립트의 명령줄 인수(또는 스크립트 내의 함수에 대한 인수)를 보유합니다.
${var-value}
기본 값 확장이며, 설정된 경우 사용되는 값이고 $var
, 그렇지 않은 경우 뒤에 제공되는 값입니다 -
.
따라서 ${1-${HOME}}
(또는 ${1-$HOME}
) 스크립트의 첫 번째 명령줄 인수가 사용되거나, 인수가 없으면 값이 무엇이든 사용됩니다 $HOME
. 할당하면 해당 결과가 에 할당됩니다 DIR
.
예를 들어 참조하십시오.스크립트에서 변수 할당을 위해 "${a:-b}"를 사용하세요.예를 들어 및 의 변형입니다 :-
.