test.sh
하나의 명령 줄 인수를 허용 하는 bash 스크립트를 만들었습니다 .
$ cat test.sh
#!/bin/bash
open -a Terminal $1
이 스크립트를 다음과 같은 방법으로 실행할 때 :-
$ ./test.sh /Users/myusername/Desktop/folderwithoutspaces/
완벽하게 실행되고 지정된 폴더에서 새 터미널 창을 시작합니다.
하지만이 스크립트를 다음과 같이 실행하면 :-
$ ./test.sh /Users/myusername/Desktop/folder\ withspaces/
새 터미널 창을 열지 못하고 다음 오류 메시지가 표시됩니다.
The files /Users/myusername/Desktop/folder and /Users/myusername/Desktop/withspaces do not exist.
이 모든 가능한 방법을 시도했지만 전혀 성공하지 못했습니다.
$ ./test.sh "/Users/myusername/Desktop/folder\ withspaces/"
$ ./test.sh "/Users/myusername/Desktop/folder withspaces/"
$ ./test.sh '/Users/myusername/Desktop/folder\ withspaces/'
$ ./test.sh '/Users/myusername/Desktop/folder withspaces/'
$ ./test.sh /Users/myusername/Desktop/folder\ withspaces/
따옴표와 함께 변수를 사용하면 IFS
기본적으로 공백을 포함하는 기준으로 분할 됩니다. 해결책은 변수를 인용하는 것입니다. 말 대신 :
open -a Terminal $1
말하다:
open -a Terminal "$1"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다