Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux #!/带参数问题的bin/bash可执行文件_Linux_Bash_Parameters - Fatal编程技术网

Linux #!/带参数问题的bin/bash可执行文件

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 $@

为什么我不能理解这里的问题?参数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

解决方案是不要将shell内置名或系统命令用于您的个人脚本

这就是您观察到的问题:

$ test one two 
bash: test: one: unary operator expected
但是,请注意:

$ type test
test is a shell builtin
由于
test
是一个shell内置程序,因此将忽略您的命令并运行shell内置程序


为您的shell脚本选择另一个名称,最好是与标准系统命令不冲突的名称。

okay#smhyep,现在绝对有效,我完全理解这个问题。非常感谢。