0

由于在 Bash 中(在 中)指定别名时变量会出现问题,.bashrc因此以下内容不起作用:

alias count1="num=$1 | cat $num | wc"
alias count2="`cat $num` | wc"

为什么是

alias killID="kill -9 `pgrep $1`"

工作呢?

顺便提一句。在搜索这个时,我了解到我们应该总是使用函数.bashrc来定义类似上面的东西。只是让我很好奇。

编辑

其他不使用参数的示例(因为我的第一个示例不好):

alias testalias='du -m ./* | sort -nr | head -n $1 ; du -sh'
4

1 回答 1

1

在第一种情况下,您使用管道,而您应该使用组。

此外,您使用了错误的引号,您应该使用单引号,而不是双引号。使用双引号将在您声明时给出变量的值alias,而不是在您运行命令时。

这些也是无用使用的例子cat。见http://porkmail.org/era/unix/award.html

例子:

alias count1='num=$1;wc $num'

在有效的命令中,$1从不使用扩展。它不存储在别名中。参数(位于右侧)在运行时附加到构造的命令。使用命令检查构造的别名alias以查看它的实际作用。

于 2013-11-08T13:16:14.883 回答