如何在执行别名时而不是在定义时评估别名中命令的输出?
How can I make an output of a command in alias to be evaluated when the alias is executed but not when defined?
我针对这个问题做了一个简单的例子。我可以
ckim@stph45:~] echo 1 2 3 | awk '{print }'
2
我想为这整个命令创建一个别名,但它给了 em 一个错误(我正在使用 csh)
ckim@stph45:~] alias tt 'echo 1 2 3 | awk '{print }''
Missing }.
如何逃脱'
?我试过了
alias tt 'echo 1 2 3 | awk \'{print }\''
alias tt 'echo 1 2 3 | awk "'{print }'"'
但是没用。 => 解决了。请'ADD'下方
ADD : 正如 l|L|l 在下面的推荐,我可以通过 `alias tt "echo 1 2 3 | awk '{print }'" 传递它,但对于下面的真实案例
ckim@stph45:~] alias ddcoc "ddd caffe-fast-rcnn/python/caffe/_caffe.so `ps aux | grep python | grep tools | awk '{print }'`"
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 是我可以在 csh 上 运行 的应用程序,但在此别名中不起作用。我该如何解决?
你必须使用别名吗?我只是将别名转换为脚本或 shell 函数。
这看起来像(至少 bash/zsh)
function ddcoc()
{
ddd <some absolute path>/caffe-fast-rcnn/python/caffe/_caffe.so $(ps aux | grep python | grep tools | awk '{print }')
}
我针对这个问题做了一个简单的例子。我可以
ckim@stph45:~] echo 1 2 3 | awk '{print }'
2
我想为这整个命令创建一个别名,但它给了 em 一个错误(我正在使用 csh)
ckim@stph45:~] alias tt 'echo 1 2 3 | awk '{print }''
Missing }.
如何逃脱'
?我试过了
alias tt 'echo 1 2 3 | awk \'{print }\''
alias tt 'echo 1 2 3 | awk "'{print }'"'
但是没用。 => 解决了。请'ADD'下方
ADD : 正如 l|L|l 在下面的推荐,我可以通过 `alias tt "echo 1 2 3 | awk '{print }'" 传递它,但对于下面的真实案例
ckim@stph45:~] alias ddcoc "ddd caffe-fast-rcnn/python/caffe/_caffe.so `ps aux | grep python | grep tools | awk '{print }'`"
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 是我可以在 csh 上 运行 的应用程序,但在此别名中不起作用。我该如何解决?
你必须使用别名吗?我只是将别名转换为脚本或 shell 函数。
这看起来像(至少 bash/zsh)
function ddcoc()
{
ddd <some absolute path>/caffe-fast-rcnn/python/caffe/_caffe.so $(ps aux | grep python | grep tools | awk '{print }')
}