2016-08-25 1 views
1

이 질문에 대한 간단한 예를 만들었습니다. 나는이 모든 명령에 대한 별칭을 만들고 싶었다별칭이 실행될 때 평가되도록 정의 된 별칭의 명령 출력을 만들 수 있습니까?

[email protected]:~] echo 1 2 3 | awk '{print $2}' 
2 

할 수 있지만 그들에게 (I csh를 사용하고 있습니다)

[email protected]:~] alias tt 'echo 1 2 3 | awk '{print $2}'' 
Missing }. 

가 어떻게 ' 탈출 않는 오류를 준다? 시도했습니다

alias tt 'echo 1 2 3 | awk \'{print $2}\'' 
alias tt 'echo 1 2 3 | awk "'{print $2}'"' 

하지만 작동하지 않았습니다. => 해결되었습니다. 아래에 '추가'하십시오.

ADD : 리터로 | L | 아래 L의 표창, 나는 별명 TT`로 전달할 수 "에코 1 2 3 | AWK '{$ 2를 인쇄}' '하지만

[email protected]:~] alias ddcoc "ddd caffe-fast-rcnn/python/caffe/_caffe.so `ps aux | grep python | grep tools | awk '{print $2}'`" 
[email protected]:~] ddcoc 
ddd: No match. 
[email protected]:~] alias ddcoc 
ddd caffe-fast-rcnn/python/caffe/_caffe.so ckim  29216 0.0 0.0 52596 8968 pts/8 Ss+ 11:36 0:00 /home/ckim/anaconda2/bin/python -t /usr/local/bin/pydb tools/train_net_e2e.py --gpu 0 --solver models/coco/ZF/faster_rcnn_end2end/solver.prototxt --weights data/imagenet_models/ZF.v2.caffemodel --imdb coco_2014_train --iters 490000 --cfg experiments/cfgs/faster_rcnn_end2end.yml --set RNG_SEED 42 TRAIN.SCALES [400,500,600,700] 

아래 실제 사건에 대한 별칭을 정의 할 때 문제가 ps ...으로 대체됩니다. 내가 원하는 것은 별칭을 실행할 때 ps ...을 평가하는 것입니다. ddd는 csh에서 실행할 수있는 응용 프로그램이지만이 별칭에서는 작동하지 않습니다. 어떻게 해결할 수 있습니까?

+0

이 ... "에코"'일을 시도'에 따옴표처럼 보일 것입니다. –

+0

[\ [this \]] (http://stackoverflow.com/a/24247870/1620779) 유용한 답변을 확인하십시오. – sjsam

+0

@ l' l' l, 아, 그거야 :). (원래의 더 복잡한 경우에는 사용할 수 없지만 다른 문제가있을 수 있습니다. –

답변

0

별칭을 사용해야합니까? 별칭을 스크립트 또는 셸 함수로 변환하기 만하면됩니다.

는 (적어도 bash는/zsh을 위해)

function ddcoc() 
{ 
    ddd <some absolute path>/caffe-fast-rcnn/python/caffe/_caffe.so $(ps aux | grep python | grep tools | awk '{print $2}') 
} 
+0

ok,하지만 csh를 사용하고 있으며 csh가 함수를 지원하지 않습니다. http://www.grymoire.com/Unix/CshTop10.txt. 나중에'eval' 명령을 사용해 보겠습니다. 감사! –

+1

또한 명령을 스크립트에 넣고 실행할 수도 있습니다. – Uroc327

+0

당신 말이 맞아요. 이 경우 간단한 스크립트를 사용하는 것이 올바른 해결책 인 것 같습니다. PATH에 나열된 디렉토리에 스크립트를 넣고 원하는대로 ddd를 실행할 수 있습니다. –

관련 문제