반응형
셸 스크립트의 행 끝에 세미콜론이 필요합니까?
다음 내용을 포함하는 셸 스크립트가 있습니다.
case $1 in
0 )
echo $1 = 0;
OUTPUT=3;;
1 )
echo $1 = 1;
OUTPUT=4;;
2 )
echo $1 = 2;
OUTPUT=4;;
esac
HID=$2;
BUNCH=16;
LR=.008;
위의 스니펫에 세미콜론이 완전히 불필요한가요?그리고 어떤 사람들이 이중 세미콜론을 사용하는 이유가 있나요?
세미콜론은 새 줄 대신 사용할 구분 기호일 뿐입니다.
줄 끝에 있는 단일 세미콜론은 필요 없습니다. 새 줄은 명령 구분 기호이기도 하기 때문입니다. case
특히 각 패턴 블록의 마지막 명령어 끝에 이중 세미콜론이 필요합니다.를 참조해 주십시오.help case
자세한 것은, 을 참조해 주세요.
에 따르면man bash
:
metacharacter A character that, when unquoted, separates words. One of the following: | & ; ( ) < > space tab control operator A token that performs a control function. It is one of the following symbols: || & && ; ;; ( ) | |& <newline>
그래서...;
메타 문자 또는 제어 연산자가 될 수 있지만,;;
는 항상 제어 연산자(case 명령어)입니다.
특정 코드로,;
는 필요 없습니다.그;;
하지만 필요합니다.
특별한 발견의 경우,;
exec에 의해 호출된 명령어를 종료하기 위해 사용합니다.이 질문에 대한 @kenorv의 답변을 참조하십시오.
@Opensource book-Amit
단일 세미콜론에 해당하는 줄 바꿈;
terminal 또는 shell script로 설정합니다.
다음의 예를 참조해 주세요.
터미널:
[root@server test]# ls;pwd;
셸 스크립트:
[root@server test]# cat test4.sh
echo "Current UserName:"
whoami
echo -e "\nCurrent Date:";date;
[root@server test]#
하지만 나는 그 의견에 동의하지 않는다.&
줄바꿈 또는 단일 세미콜론과 동일합니다.
&
is background 명령어 실행은 명령어 구분자이지만 세미콜론 또는 줄바꿈으로 동작하지 않습니다.
언급URL : https://stackoverflow.com/questions/7507038/semicolons-superfluous-at-the-end-of-a-line-in-shell-scripts
반응형
'programing' 카테고리의 다른 글
Swift의 Int 선행 0 (0) | 2023.04.16 |
---|---|
콘솔을 클리어하려면 (0) | 2023.04.16 |
XlsxWriter로 쓴 후 셀에 형식 적용 (0) | 2023.04.11 |
x64 사용자 지정 클래스의 각 열거에 대한 버그 (0) | 2023.04.11 |
VB 코드에서 VBProject 보호 해제 (0) | 2023.04.11 |