gnome-terminal에 대한 -e와 -x 옵션의 차이점은 무엇입니까?


11

매뉴얼 페이지 상태 :

-e, --command=STRING
Execute the argument to this option inside the terminal.
-x, --execute
Execute the remainder of the command line inside the terminal.

두 번째 예에서 "명령 줄"이란 무엇입니까? 그리고 그 "나머지"는 무엇입니까? 이 두 옵션이 다른 예를 들어 주시겠습니까? 아니면 기본적으로 동일합니까?


1
아니 정확히 그러나이 발견 superuser.com/questions/198015/...
rɑːdʒɑ

좋은 첫 질문입니다.
Jared Smith

답변:


16

치다:

gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version

첫 번째 예에서는 이후의 모든 것이 -x명령 실행에 사용됩니다. 따라서 그놈 터미널이 sleep 10m --version명령으로 실행 됩니다. --version이 경우 그놈 터미널에서 실행할 명령의 일부가됩니다.

두 번째에서는 to에 대한 단일 문자열 인수 만 -e명령으로 사용됩니다. 그래서 --version여기에 실제로 그놈 터미널에 대한 옵션입니다.

첫 번째 명령은 일련의 명령을 실행하려는 경우 더 유용 할 수 있습니다.

gnome-terminal -x bash -c 'command 1; command 2; ...'

-e전체 명령은 단일 문자열이어야하므로 전체를 인용해야하기 때문에이 작업은 어렵습니다 . 이것은 따옴표와 변수 확장에 대해 더 조심해야 함을 의미합니다.

gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"

여기서 $foo현재 쉘에 의해 확장됩니다.

gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"' 

'명령 문자열 내부를 사용하면 성가신 따옴표 처리가 필요합니다.


5
나는 지금 본다. -x 옵션은 따옴표로 인한 문제를 피하는 편리한 방법으로 발명 된 것 같습니다.
stackzebra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.