为什么我不能理解这里的问题?参数catch在/ bin之外工作,但我不想使用“./”来运行我打算制作的命令...
我在/bin
目录中添加了这个脚本:
$ cat /bin/test
#!/bin/bash
echo $@
当我执行它时,我收到错误。例如:
$ test one two
bash: test: one: unary operator expected
但是,当我将相同的脚本放在不同的位置时:
$ cat /home/user/run/test
#!/bin/bash
echo $@
它正确运行:
$ /home/user/run/test one two
one two
答案 0 :(得分:1)
解决方案不是为您的个人脚本使用shell builtins或系统命令的名称。
这是您观察到的问题:
$ test one two
bash: test: one: unary operator expected
但是,请注意:
$ type test
test is a shell builtin
由于test
是内置的shell,因此忽略您的命令并运行shell内置。
为shell脚本选择另一个名称,最好是与标准系统命令不冲突的名称。