【发布时间】:2015-10-18 07:16:33
【问题描述】:
我想在终端 (OSX) 中为此命令创建一个别名:
cal -y | awk -v month="`date +%m`" -v day="`date +%e` " '{m=int((NR-3)/8)*3+1; for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,20) " "; if (m+i==month) sub(day,"\033[0;31m&\033[0m",t[i]);} print t[0],t[1],t[2];}'
该命令在我刚刚运行时运行良好,但是当我尝试为其创建别名时,它给了我这个错误:
意外标记 `(' 附近的语法错误
我创建别名的代码是:
alias caly='cal -y | awk -v month="`date +%m`" -v day="`date +%e` " '{m=int((NR-3)/8)*3+1; for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,20) " "; if (m+i==month) sub(day,"\033[0;31m&\033[0m",t[i]);} print t[0],t[1],t[2];}''
我还尝试使用转义序列,因为错误可能是在我将单引号放在整行之前,命令中已经存在单引号。这是我尝试的第二段代码(这给了我同样的错误):
alias caly='cal -y | awk -v month="`date +%m`" -v day="`date +%e` " \'{m=int((NR-3)/8)*3+1; for (i=0;i<3;i++) {t[i]=substr($0,1+i*22,20) " "; if (m+i==month) sub(day,"\033[0;31m&\033[0m",t[i]);} print t[0],t[1],t[2];}\''
有谁知道我该如何解决这个错误?我对终端很陌生,所以任何建议都值得赞赏!
【问题讨论】:
-
你到底想做什么?
-
所以终端中有一个“cal 2015”功能,可以让您查看全年的日历,但它不会突出显示当前日期。我在网上找到了一个实际上可以让你这样做的命令,但由于它真的很长,我想为该命令创建一个别名,并最终将该别名保存在 bash 配置文件中。但是,创建别名的命令不起作用,所以我想知道是否有人知道它有什么问题。谢谢!