2016-08-25 18 views
1

私はこの質問の簡単な例を作った。私は'をエスケープするにはどうすればよいエイリアスのコマンドの出力をエイリアスが実行されたときに評価されるようにするにはどうすればよいですか?

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

(I cshを使っている)私は、この全体のコマンドのエイリアスを作りたかったのですが、それはEMにエラーが発生します

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

を行うことができますか?試しました

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

しかし、動作しませんでした。 =>解決されました。以下に「追加」してください。

ADD:Lとして| 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を実行できます。 –

関連する問題