별칭을 사용하여 C에서 파일을 컴파일하는 데 걸리는 시간을 단축하고 싶습니다.별칭, 변수 및 파일 이름
alias gccp="gcc -pendantic -Wall -ansi '$1'.c -o '$1'"
내가 gccp의 P1을 시도하고 명령 gcc -pendantic -Wall -ansi p1.c -o p1
을 실행하는 데 기대 :
여기 내 별명입니다.
내가 뭘 잘못하고 있니?
별칭을 사용하여 C에서 파일을 컴파일하는 데 걸리는 시간을 단축하고 싶습니다.별칭, 변수 및 파일 이름
alias gccp="gcc -pendantic -Wall -ansi '$1'.c -o '$1'"
내가 gccp의 P1을 시도하고 명령 gcc -pendantic -Wall -ansi p1.c -o p1
을 실행하는 데 기대 :
여기 내 별명입니다.
내가 뭘 잘못하고 있니?
별칭에는 인수를 사용할 수 없습니다. 귀하의 경우 $ 1은 아무것도 아닙니다. 이를 수행하고 내보내는 함수를 만들어야합니다.
편집는 :
내가 실수를했다. 인수는 bash 별명 에서 가능하지만은 호출 될 때 별명이 작성 될 때 지정됩니다. 그래서 당신이 원하는 것을 얻기 위해서는 .bashrc 파일에이 함수를 추가하고 bash를 재시작하십시오. 심지어 더 편집이 모두가 무엇을 용어 인수에 따라
function gccp()
{
gcc -pendantic -Wall -ansi $1.c -o $1
}
. 내가 추가 할 경우 예를 들어, 내 .bashrc
파일에 다음 다시 시작 bash는
alias blabla="echo $HOSTNAME"
을 그리고 난 내 호스트 이름을 얻을 blabla
를 호출합니다. 그러나 $ HOSTNAME은 실제로 논쟁 거리가 아닙니다. 그것은 변수입니다. 인수는 당신이 어떤 종류의 정보로 호출하고있는 함수/명령을 제공하고 있음을 의미합니다. 그래서 그 정의에 의해, 별칭 은 인수를 취하지 않습니다.
왜이 별칭이 작동합니까? 별칭 subl = "open -a /Applications/Sublime.app $ 1" –
@Dave 내 편집을 참조하십시오. –
별칭은 인수를 사용할 수 없습니다 (Bash manual 참조). 인수를 사용하여 별칭을 호출하면 쉘은 실제로 별칭 값의 명령 이름 만 바꾸기 때문에 인수가 명령 끝에 추가됩니다.
사용을 대신 shell function : 대신
gccp()
{
gcc -pendantic -Wall -ansi "$1".c -o "$1"
}
사용 make
.
$ export CFLAGS=-pendantic -Wall -ansi
$ make p1
는 내장 된 패턴 일치 규칙을 사용하여 원하는 것을 수행합니다.
환경 변수가 원치 않는 방식으로 다른 것과 상호 작용하는 경우 CFLAGS
값을 직접 make
으로 전달하거나 CFLAGS
을 정의하는 한 줄의 makefile을 작성하십시오.
별칭은 $ 1 같은 인수를 처리 할 수 없습니다. '함수 gccp {gcc - ... $ 1 ...; }'. 행운을 빕니다. – shellter
실제로 가능합니다. 별칭 djang = "django-admin.py startproject $ 1"이 효과적입니다. –
@Dave :'djang blah'를 실행하면 쉘은'djang'에'django-admin.py startproject'를 대체하고'django-admin.py startproject blah' 명령을 실행합니다. 별칭을 평가할 때 '$ 1'이 빈 문자열로 확장됩니다. –