샌드 별칭을 만들 수 있습니까?


8

모든 파일 이름에 다음 별칭을 사용할 수있는 방법을 찾고 있습니다.

alias dim='cd /home/jason/Documents; vim *the desired file*; cd'

이 별칭을 변경하여 파일 이름을 입력 할 수있는 방법이 있는지 궁금합니다.

dim *the desired file*

그리고 여전히 같은 결과를 얻습니다. 기본적으로 별칭 이름 뒤에 입력 한 것을 별칭 자체에 호출하는 방법이 있습니까? 다음과 같은 것 :

alias dim='cd /home/jason/Documents; vim <what is typed after alias>; cd'

//, 이것의 목적은 무엇입니까?
Nathan Basanese

답변:


8

아니요, 쉘 별칭을 사용하여 그렇게 할 수 없습니다. 기능을 사용해야합니다.

다음은 작업을 수행하는 간단한 기능입니다.

dim() {
cd /home/jason/Documents
vim "$1"
cd
}

이 함수 dim는 파일 이름을 인수로 사용합니다. 이 코드 스 니펫을 ~/.bashrc파일 끝에 넣고 다음과 같이 실행할 수 있습니다.

dim file.txt

교체 file.txt원하는 파일 이름으로.

현재 쉘 세션 source에서 ~/.bashrc파일 을 실행하려면 먼저 파일 을 실행하십시오 .

. ~/.bashrc

3
"$ 1"은 무엇을 의미합니까? 저는 초보자이며 붙여 넣기 만하고 하루에 부르는 것보다 배우려고합니다.
Jason Basanese

1
@JasonBasanese 나는 당신의 결정에 감사합니다 :) $1함수에 대한 첫 번째 위치 매개 변수 또는 인수를 나타냅니다. 함수 또는 스크립트에 입력을주는 방법으로 생각 bash하십시오. 구글에서 이것에 대한 수많은 자료를 찾으십시오 ..
heemayl

3

별명을 사용하지 말고 대신 함수를 사용하십시오.

로부터 배쉬 man 페이지 :

별칭

[...] 대체 텍스트에 인수를 사용하는 메커니즘이 없습니다. 인수가 필요한 경우 쉘 기능을 사용해야합니다 (아래의 기능 참조).

따라서 귀하의 기능은 다음과 같습니다.

함수 dim () {cd ~ jason / Documents; vim $ *; cd-;}


1
이 경우 ~ / 문서가 제대로 작동하지 않습니까? 또한이 경우 $ 및 * 기호는 무엇을 의미합니까? 그리고 CD가 필요한 후에-입니까? 보통 cd 만 입력하면 디렉토리가 올라갑니다.
Jason Basanese

“보통 cd를 입력하면 디렉토리가 올라갑니다.”– 나는 cd당신을 당신의 홈 디렉토리로 데려 오는 평범 만 알고 있습니다. cd ..한 단계 위로 올라갑니다. cd -이전 디렉토리로 이동합니다 cd.
Chriki

1
@JasonBasanese : 예 ~ / 문서는 모든 사용자를 위해 작동합니다 (모든 사용자를위한 기능인 경우). 입력 한 첫 번째 인수가 아닌 전체 목록을 vim에 제공하는 $*것과 같습니다 $1 $2 $3.... Chriki가 말했듯 cd -이 이전 디렉토리 (함수를 호출했을 때 있던 디렉토리)로 돌아갑니다.
CijcoSistems
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.