我正在尝试编写一个简单的bash函数,该函数将许多文件和/或目录作为其参数。这应该:
- 完全限定文件名。
- 对它们进行排序。
- 删除重复项。
- 打印所有实际存在的内容。
- 返回不存在的文件数。
我有一个脚本,几乎可以执行我想要的操作,但是无法进行排序。按原样返回脚本的返回值是正确的,但是输出不是(未排序和重复的)。如果我取消注释所示的| sort -u
语句,则输出正确,但返回值始终为0
。
注意:欢迎使用更简单的解决方案来解决问题,但问题实际上是为什么在我的代码中会发生这种情况。也就是说,为什么添加管道似乎停止脚本增加变量的作用r
?
这是脚本:
function uniqfile
{
local r=0
for arg in "$@"
do
readlink -e "$arg" || (( ++r ))
done #| sort -u ## remove that comment
return $r
}
for arg in "$@"
到for arg
。“如果'用言语...;' 不存在,则假定为“在“ $ @”中”。-帮助