2013-03-08 136 views
0

我有这个bash脚本,我可以传递给三个参数。当我从目录./script -h调用它时,它的作用就像一个魅力,但是当我将同一个文件复制到/ bin并从script -h的任何位置调用它时,它似乎忽略了传递的参数。Bash脚本忽略/ bin中的参数

为什么?或者更重要的是: 我能做些什么来改变它?

+0

你确定你在脚本的第一行调用了bash吗? #!/ usr/bin/bash – 2013-03-08 08:52:05

+2

另请做'哪个脚本'来查看你是否调用了正确的脚本 – user000001 2013-03-08 08:53:26

+0

第一行是正确的,但user000001有解决方案!我使用了哪个命令,结果我在/ usr/bin中仍然保留了该文件的旧副本。这被称为和/ bin中的新副本被忽略。删除旧的它现在一切正常。谢谢! – fortranondebian 2013-03-08 09:07:16

回答

2

script是一个非常有用的标准应用程序,它会获取当前会话的副本(查找名为typescript的文件)。它创建另一个shell界面,所以你可能没有注意到它正在运行。

当您编写新程序时,请使用命名约定,如script.sh

编辑:

如果你不喜欢使用文件后缀(因为它看起来太像Windows),那么细,但使用一些其他的命名规则,这将确保你的脚本名不与现有的命令冲突。例如,test是另一个最喜欢的。例如,您可以使用type来检查命令,但只检查当前的环境,但如果使用不同的用户名运行,则可能仍然存在名称冲突。

+0

这个答案怎么样?为什么他会那样做?它不是风筝。 – 2013-03-08 08:52:34

+0

这是一个答案,因为它可能是被调用的所提及的'script'(在'/ usr/bin'中),而不是用户的脚本(在'/ bin'中)。 – robertklep 2013-03-08 08:57:03

+0

听起来像是对我的回答。 'script'已经是一个Linux命令,所以OP可能会得到内置命令而不是实际的脚本。 – 2013-03-08 08:57:35