繁体   English   中英

在 bash 命令中运行别名不起作用

[英]Running the alias in bash command doesn't work

alias testing="date | tee /home/anupamkhatiwada/fulldate.txt | cut --delimiter=" " --field=1 | tee /home/anupamkhatiwada/shortdate.txt | xargs echo hello"

在终端中输入测试并按回车

测试:找不到命令

可能是因为你在你的字符串中嵌入了" 。试试这个:

alias testing='date | tee /home/anupamkhatiwada/fulldate.txt | cut --delimiter=" " --field=1 | tee /home/anupamkhatiwada/shortdate.txt | xargs echo hello'

当我运行该命令时,我收到以下错误消息:

-bash: alias: ` --field': invalid alias name

正如 PaulProgrammer 指出的那样,这似乎是由于您的cut命令中使用的分隔符,双引号"与用于定义别名的分隔符冲突。因此,另一种解决方法是:

alias testing="date | tee /home/anupamkhatiwada/fulldate.txt | cut --delimiter=' ' --field=1 | tee /home/anupamkhatiwada/shortdate.txt | xargs echo hello"

定义一个 function 而不是别名,那么您不必担心引用冲突。

testing() {
    date | tee /home/anupamkhatiwada/fulldate.txt | cut --delimiter=" " --field=1 | 
        tee /home/anupamkhatiwada/shortdate.txt | xargs echo hello
}

函数还有一个额外的好处是它们可以接受参数,这些参数可以插入到命令的中间。 请参阅制作带参数的 Bash 别名?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM