![쉘 스크립트 변수 보유 명령은 어떻게 작동합니까? [폐쇄]](https://linux55.com/image/78952/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%B3%80%EC%88%98%20%EB%B3%B4%EC%9C%A0%20%EB%AA%85%EB%A0%B9%EC%9D%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
컴퓨터를 시작할 때마다 소스에서 프로그램을 컴파일하는 자동 컴파일 스크립트를 만들려고 합니다. 현재는 다음과 같습니다(정확한 구문은 기억나지 않습니다).
VAR=$(sudo git pull)
if (VAR = "Nothing to update")
{
#do nothing
}
else {
#compile package
}
이것이 작동할까요? VAR=$ 또는 if 문 중에 sudo git pull이 호출되는지 알고 싶습니다.
답변1
이 명령은 초기 명령 대체(예: ) 중에만 호출됩니다 VAR=$(sudo git pull)
.
이것을 쉽게 테스트할 수 있습니다.
$ VAR=$(touch foo; echo bar)
$ echo $VAR
bar
$ ls -l foo
-rw-r--r-- 1 me me 0 Dec 7 16:28 foo
파일을 생성했고 foo
명령 바꾸기()의 출력이 bar
에 할당된 것을 볼 수 있습니다 $VAR
.
이제 잠시 기다렸다가 변수에 다시 액세스하십시오.
$ echo $VAR
bar
$ ls -l foo
-rw-r--r-- 1 me me 0 Dec 7 16:28 foo
표시되는 수정 시간은 foo
변경되지 않았습니다.