Linux #!/带参数问题的bin/bash可执行文件
为什么我不能理解这里的问题?参数catch在/bin之外工作,但我不想使用“/”来运行我计划执行的命令 我在Linux #!/带参数问题的bin/bash可执行文件,linux,bash,parameters,Linux,Bash,Parameters,为什么我不能理解这里的问题?参数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 $@
/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
解决方案是不要将shell内置名或系统命令用于您的个人脚本 这就是您观察到的问题:
$ test one two
bash: test: one: unary operator expected
但是,请注意:
$ type test
test is a shell builtin
由于test
是一个shell内置程序,因此将忽略您的命令并运行shell内置程序
为您的shell脚本选择另一个名称,最好是与标准系统命令不冲突的名称。okay#smhyep,现在绝对有效,我完全理解这个问题。非常感谢。