유닉스에서 $ 변수를 어떻게 설정합니까?


6

예를 들어 내가 cd자주 가는 길은 길다 . 매번 사용할 수 있도록 변수에 경로를 저장하는 방법은 무엇입니까?

예를 들어 : 나는 이것을 할 수 있기를 원한다

cd $path

대신에

cd /a/b/c/d/e/f 

매번.


1
"C Shell"( csh) 또는보다 일반적인 Borne / Bash Shell ( shbash각각)을 사용하고 있습니까?
mctylr

@mctylr : C 쉘
Lazer

답변:


6

실제로 csh / tcsh 구문을 원한다고 가정하면 (질문에 태그를 붙임)

setenv P1 "/a/b/c/d/e/f"

.tcshrc에

그 후 당신은 할 수 있습니다

cd $P1

10

Bash 쉘에서 :

export FOO="/a/b/c"

그리고 $ path를 사용하고 싶지 않습니다 . 그것은 특별한 변수입니다.


2
$ path를 사용하지 않는 것에 대한 +1 장점. 그것은 나쁠 것입니다.
DaveParillo

10
$ PATH는 특별한 변수이고 $ path는 그렇지 않습니다. 그래도 사용하지 않는 것이 좋습니다.
John T

2
현재 셸에서이 변수 만 참조하면 "foo = / a / b / c"만 있으면 내보내기가 필요하지 않을 수 있습니다. 셸에서 다른 프로그램을 실행할 때와 같이 변수를 자식 프로세스로 전파하려면 export 명령이 필요합니다.
njd

위에서 언급했듯이 $ path는 괜찮습니다. 그리고이 질문은 csh 태그가 붙어 있으며 구문은 bash입니다.
Justin Smith

7

환경에서 변수가 필요하지는 않습니다.

따라서 대신 csh setenv에서 다음을 수행 할 수 있습니다.

set dir="/a/b/c/d/e/f"
cd $dir

또는 Bash 대신 export:

dir="/a/b/c/d/e/f"
cd $dir

a set dir="/a/b/c/d/e/f"setenv dir "/a/b/c/d/e/f"? 의 차이점은 무엇입니까 ?
Lazer

@Lazer : setenv자식 프로세스에서 사용할 수 있도록 변수를 내 보냅니다. set현재 환경 (스크립트 또는 대화식 쉘)에서만 사용할 변수를 설정합니다. 대부분의 경우을 사용해야 set합니다. 또한 set배열을 지원 하지만 지원 setenv하지 않습니다.
Dennis Williamson

3

내보내기를 사용하십시오.

your_path = "/ a / b / c / d / e / f"내보내기

cd $ your_path

로그인을 통해 유지하려면 .profile 파일로 편집해야합니다.


1
또는 ~/.bash_profile시스템 전체 효과의 경우 /etc/profile. 어쨌든 지속성을 언급하면 ​​+1입니다.
Jonik

1
그것은 잘못된 껍질입니다. 그는 csh를 원했다.
Justin Smith

당신은 거의 확실히 사용할 필요가 없습니다 export. Bash 또는 sh에서 your_path="/a/b/c/d/e/f"거의 항상 충분합니다.
Dennis Williamson

0

한 세션의 경로 만 사용하려면 평소와 같이 변수를 설정하십시오

set long="/some/long/path/to/a/directory"

그런 다음 cd "$long"쉘이 종료되거나 long다시 설정 될 때까지 원하는만큼 자주 사용할 수 있습니다 .

쉘 세션에서 실행되는 프로세스에 사용 가능한 변수에 관심이 있다면 환경에서 설정해야합니다.

setenv long "/some/long/path/to/a/directory"

현재 세션이 아닌 모든 세션에서 변수를 사용할 수있게하려면 쉘 실행 제어에서 변수를 설정해야합니다.

$EDITOR ~/.cshrc

그런 다음 위에 표시된 set행이나 행을 추가하여 setenvcsh의 모든 세션에 대해 변수 또는 환경 변수를 자동으로 설정하십시오.


0

csh의 경우 cdpath 를 사용하고 싶을 것입니다 . bash의 경우 CDPATH를 대신 사용하십시오.

예를 들어 (bash) :

prompt$ export CDPATH=:/a/b/c/d/e

prompt$ cd f
cd /a/b/c/d/e/f

콜론으로 구분 된 디렉토리 대상을 더 추가 할 수도 있습니다. CDPATH가 현재 작업 디렉토리를 먼저 확인하도록 선행 콜론을 유지하십시오!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.