Bash脚本总是将——color=auto作为参数



我有以下脚本:

#!/bin/bash
STUB=`pwd | awk -F '/' '{print "/" $2 "/" $3 "/"}'`
printf "arguments are $@n"
if [ $STUB = "/mnt/nas/" ]; then
        /usr/bin/ad ls $@ 1>&1
else
        /bin/ls $@ 1>&1
fi

然而,无论何时运行它,即使我从未键入,也会自动添加以下文本作为参数:

--color=auto

所以我可以运行以下命令:

ls

,它总是会输出

arguments are --color=auto

尽管我从来没有输入过。

这个额外的参数弄乱了我的脚本,因为/usr/bin/ad无法解析它。你知道我做错了什么吗?

谢谢

让我猜一下:脚本名为ls,您已经将ls定义为~/.bashrc或其他地方的ls --color=auto的别名。

您可能已经在某处定义了别名。

在终端中输入以下内容,看看会得到什么:

alias | grep "ls"

您可以使用绝对路径运行ls:

/usr/bin/ad `which ls` $@ 1>&1 

最新更新