Chinaunix

标题: alias求助 [打印本页]

作者: bikkuri    时间: 2014-08-24 18:37
标题: alias求助
大家好。
我有一个问题向大家请教。
我有一个正常执行的命令:
  1. [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
  2. 282CB20E9064:2102 0
  3. C06118590FD0:4020 0
  4. D8150DDF6234:3 0
  5. [root@cloudband-be ~]#
复制代码
然后我想把这个命令用alias做一个别名,但是做成别名后执行不了了,而且用which命令可以发现alias后的命令被截断了。
  1. [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'
  2. [root@cloudband-be ~]#  which wl
  3. alias wl='for file in *.txt;do echo "${file%%.*}:$(awk NR==1{a=$0}NR==2{b=$0}NR==3{c=$0}END{print'
  4. [root@cloudband-be ~]# wl
  5. > ^C
  6. [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
谢谢您的指点。
  1. 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