我有以下脚本:
#!/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