pwd를 실행 파일의 인수로 전달

pwd를 실행 파일의 인수로 전달

그래서 저는 "숭고한 텍스트"라는 별칭을 가지고 있습니다.http://www.sublimetext.com/docs/2/osx_command_line.html 터미널에서 직접 파일이나 폴더를 열어야 하는 경우가 많으며 이는 파일의 경우 쉽습니다.

subl myfile.html

그리고 폴더

subl /Users/me

하지만 "pwd" 명령을 사용하여 Sublime에서 현재 디렉터리를 여는 방법은 무엇입니까? 넣는 방법이 있나요?

답변1

$(pwd)

또는 다음과 같은 백틱을 사용할 수 있습니다.

`pwd`

그래서:

subl `pwd`

어느 쪽이든 명령이 실행 pwd되고 해당 반환 텍스트가 명령줄로 전달됩니다. Bash를 사용한다고 가정하면 무슨 일이 일어나고 있는지 확인하는 좋은 방법은 set -x명령을 실행하고 실행하는 것입니다. 이 예에 표시된 것처럼 where subl에 대한 별칭은 다음 과 같이 echo표시됩니다.결과of 는 명령줄의 확장 별칭으로 전달됩니다( pwd다음으로 시작하는 줄로 +표시됨 ).실제실행 중인 명령):

$ alias subl=echo
$ mkdir /tmp/abc
$ cd /tmp/abc
$ set -x
$ subl `pwd`
++ pwd
+ echo /tmp/abc
/tmp/abc
$

(완료되면 를 실행하여 인쇄 명령을 중지할 수 있습니다 set +x.)

답변2

환경 변수 PWD를 사용하거나.

sub1 $PWD

sub1 .

답변3

한 명령의 출력을 다른 명령의 명령줄에 삽입하려면 다음을 사용하십시오.명령 대체.

subl "$(pwd)/somefile.txt"

(…)큰따옴표 사이에 넣어야 한다는 점에 유의하세요 . 그렇지 않으면 때때로 나쁜 일이 발생합니다(명령 출력에 공백 또는 가 포함된 경우 \[*?).

pwd동일한 텍스트를 포함하는 쉘 변수가 있는 특별한 경우에는 $(pwd)대신 작성할 수 있습니다 $PWD. 같은 이유로 큰따옴표 사이에 넣어야 합니다.

절대 경로를 인수로 사용하여 프로그램을 subl호출 하려면 별칭이 아닌 함수에서 수행해야 합니다. subl경로가 이미 절대 경로일 수도 있다는 점에 유의하세요.

subl () {
  case "$1" in
    /*) :;; # already an absolute path, nothing to do
    *) set "$PWD/$1";; # make an absolute path
  esac
  command subl "$1"  # invoke the external program subl, even though a function exists
}

관련 정보