Chinaunix
标题:
alias求助
[打印本页]
作者:
bikkuri
时间:
2014-08-24 18:37
标题:
alias求助
大家好。
我有一个问题向大家请教。
我有一个正常执行的命令:
[root@cloudband-be ~]# for file in *.txt; do echo "${file%%.*}:$(awk 'NR==1{a=$0}NR==2{b=$0}NR==3{c=$0}END{print a, c=1?b:d}' $file)";done
282CB20E9064:2102 0
C06118590FD0:4020 0
D8150DDF6234:3 0
[root@cloudband-be ~]#
复制代码
然后我想把这个命令用alias做一个别名,但是做成别名后执行不了了,而且用which命令可以发现alias后的命令被截断了。
[root@cloudband-be ~]# alias wl='for file in *.txt;do echo "${file%%.*}:$(awk 'NR==1{a=\$0}NR==2{b=\$0}NR==3{c=\$0}END{print a,c=1?b:d}' $file)";done'
[root@cloudband-be ~]# which wl
alias wl='for file in *.txt;do echo "${file%%.*}:$(awk NR==1{a=$0}NR==2{b=$0}NR==3{c=$0}END{print'
[root@cloudband-be ~]# wl
> ^C
[root@cloudband-be ~]#
复制代码
请问这是怎么回事呢?应该如何修改alias命令呢?
谢谢。
作者:
huang6894
时间:
2014-08-24 21:52
引号不是贪婪配对的。。。第一个引号和最近的一个成了一对赋给了wl
作者:
cy西瓜仔
时间:
2014-08-24 22:27
尝试失败, 同求答案~~
作者:
MeRcy_PM
时间:
2014-08-24 23:34
可以写个.sh,alias运行脚本,这样应该封装起来就没啥问题了吧
作者:
blackold
时间:
2014-08-25 00:07
shell 引用的问题。
为什么要把简单的问题复杂化?
作者:
bikkuri
时间:
2014-08-25 10:44
谢谢您的指点。
alias wl='for file in *.txt;do num=$(awk "NR==1{a=\$0}NR==2{b=\$0}NR==3{c=\$0}END{print a,c=1?b:d}" $file);echo "${file%%.*}:$num";done'
复制代码
改成这样以后可以正常执行了。
blackold 发表于 2014-08-25 00:07
shell 引用的问题。
为什么要把简单的问题复杂化?
作者:
jeffreyst
时间:
2014-08-25 17:04
直接在shell配置文件中写个函数不行吗?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2