如何在别名中输出命令,以便在执行别名时求值,而不是在定义别名时求值



我举了一个简单的例子。我可以做

ckim@stph45:~] echo 1 2 3 | awk '{print $2}'
2

我想为这整个命令创建一个别名,但它会给em一个错误(我使用csh)

ckim@stph45:~] alias tt 'echo 1 2 3 | awk '{print $2}''
Missing }.

如何转义' ?I tried

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

但没有工作。=>解决。请在下方"添加"。

ADD:作为l| l| l下面的推荐,我可以通过' alias tt "echo 1 2 3 | awk '{print $2}'"传递它,但对于实际情况

ckim@stph45:~] alias ddcoc "ddd caffe-fast-rcnn/python/caffe/_caffe.so `ps aux | grep python | grep tools | awk '{print $2}'`"
ckim@stph45:~] ddcoc
ddd: No match.
ckim@stph45:~] 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是一个应用程序,我可以运行在现金,但在这个别名不工作。我怎么解它?

一定要用别名吗?我只需将别名转换为脚本或shell函数。

这看起来像(至少对于bash/zsh)

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

最新更新