매뉴얼 페이지를 읽었지만 bash 옵션의 목적을 이해하지 못합니다 onecmd
. 이 명령을 사용하면 set -o onecmd
쉘이 즉시 종료됩니다. 내 기대는 종료하기 전에 명령을 하나 더 입력할 때까지 기다릴 것이라는 것이었지만 그런 일은 일어나지 않았습니다.
그렇다면 이 옵션은 exit
명령과 동일합니까?
Bash가 이 옵션을 제공하는 이유는 무엇입니까?
누군가 이 옵션을 올바르게 사용하는 방법에 대한 예를 들어줄 수 있습니까?
답변1
이유는 모르겠지만 여기서처럼 셸을 시작할 때 명령줄에서 옵션을 설정할 수 있다는 점에 유의하세요. 내부 셸은 명령을 읽은 다음 종료됩니다.
bash$ PS1='onecmd$ ' bash -t
onecmd$ echo moi;
moi
bash$
그리고 하나의 명령을 읽은 후에 실제로 종료되지는 않지만 적어도 하나의 완전한 명령을 읽고 실행합니다.철사. 이는 두 명령과 동일합니다.
bash$ PS1='onecmd$ ' bash -t
onecmd$ echo moi; echo hei
moi
hei
bash$
물론 예를 사용하거나 &&
전체 명령 세트를 래핑하는 것도 if true; then ... fi
작동합니다.