我有这个bash脚本,我可以传递给三个参数。当我从目录./script -h
调用它时,它的作用就像一个魅力,但是当我将同一个文件复制到/ bin并从script -h
的任何位置调用它时,它似乎忽略了传递的参数。Bash脚本忽略/ bin中的参数
为什么?或者更重要的是: 我能做些什么来改变它?
我有这个bash脚本,我可以传递给三个参数。当我从目录./script -h
调用它时,它的作用就像一个魅力,但是当我将同一个文件复制到/ bin并从script -h
的任何位置调用它时,它似乎忽略了传递的参数。Bash脚本忽略/ bin中的参数
为什么?或者更重要的是: 我能做些什么来改变它?
script
是一个非常有用的标准应用程序,它会获取当前会话的副本(查找名为typescript
的文件)。它创建另一个shell界面,所以你可能没有注意到它正在运行。
当您编写新程序时,请使用命名约定,如script.sh
。
编辑:
如果你不喜欢使用文件后缀(因为它看起来太像Windows),那么细,但使用一些其他的命名规则,这将确保你的脚本名不与现有的命令冲突。例如,test
是另一个最喜欢的。例如,您可以使用type
来检查命令,但只检查当前的环境,但如果使用不同的用户名运行,则可能仍然存在名称冲突。
这个答案怎么样?为什么他会那样做?它不是风筝。 – 2013-03-08 08:52:34
这是一个答案,因为它可能是被调用的所提及的'script'(在'/ usr/bin'中),而不是用户的脚本(在'/ bin'中)。 – robertklep 2013-03-08 08:57:03
听起来像是对我的回答。 'script'已经是一个Linux命令,所以OP可能会得到内置命令而不是实际的脚本。 – 2013-03-08 08:57:35
你确定你在脚本的第一行调用了bash吗? #!/ usr/bin/bash – 2013-03-08 08:52:05
另请做'哪个脚本'来查看你是否调用了正确的脚本 – user000001 2013-03-08 08:53:26
第一行是正确的,但user000001有解决方案!我使用了哪个命令,结果我在/ usr/bin中仍然保留了该文件的旧副本。这被称为和/ bin中的新副本被忽略。删除旧的它现在一切正常。谢谢! – fortranondebian 2013-03-08 09:07:16