我创建了一个命令来计算服务器上每个用户的会话数。这是:
who | awk '{ print $1}' | sort | uniq -c | sort
效果很好,但是当我将其移动到服务器上的别名时,我只能得到返回who
,
alias who_con="who | awk '{ print $1}' | sort | uniq -c | sort";
我认为这可能是双引号,所以我尝试用单引号进行封装,但我有相同的行为,
alias who_con='who | awk "{ print $1}" | sort | uniq -c | sort';
答案1
你需要逃离美元$1
。
$ alias wW="who | awk '{ print \$1}' | sort | uniq -c | sort"
$ wW
1 tomasz
$1
应该由 awk 扩展,而不是由 shell 扩展。如果没有额外的逃逸,它会被外壳扩展。你需要再一级的逃生。这也将做到:
$ alias who_con='who | awk "{ print \$1}" | sort | uniq -c | sort';
$ who_con
1 tomasz