Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
为什么会有这样的命令;谷歌认证;可以在终端中工作,但不能从bash脚本中工作?_Bash - Fatal编程技术网

为什么会有这样的命令;谷歌认证;可以在终端中工作,但不能从bash脚本中工作?

为什么会有这样的命令;谷歌认证;可以在终端中工作,但不能从bash脚本中工作?,bash,Bash,我已经在ubuntu 16.0405服务器上安装了libpam google authenticator和freeradius。一切正常,除了在bash脚本中使用命令googleauth时,我会收到一条错误消息“googleauth:command not found” 但如果我直接把它放在终端上,同样的效果 #!/bin/bash google-auth 这不是bash脚本 要使其成为bash脚本,第一行需要包含一个“#”,如下所示: #!/bin/bash google-auth 此

我已经在ubuntu 16.0405服务器上安装了libpam google authenticator和freeradius。一切正常,除了在bash脚本中使用命令googleauth时,我会收到一条错误消息“googleauth:command not found” 但如果我直接把它放在终端上,同样的效果

#!/bin/bash  
google-auth

这不是bash脚本

要使其成为bash脚本,第一行需要包含一个“#”,如下所示:

#!/bin/bash
google-auth
此外,您需要确保脚本是可执行的:

chmod +x yourscript.sh
希望这能解决你的问题


根据下面的评论,“googleauth”命令似乎是一个别名,它没有在子shell中建立。

好的,所有这些都是在第一时间完成的。我在问题中加入了#符号,但出于某种原因,它没有显示出来。脚本也是可执行的。啊,我看到你已经更新了问题以反映这一点。另一件事是试着用-x选项运行它?i、 e.bash-x yourscipt.sh此外,如果您放入其他命令,它们是否执行(例如放入ls-l)。另外,你能发布你的脚本的实际功能吗?i、 e.是否显示了任何错误,使用bash-x等运行时会发生什么?是否从终端运行脚本?或者您是通过计划的(例如at/cron或其他)在后台运行它?我询问的原因是,例如,cron提供的$PATH通常与常规用户的PATH不同。另外,可能在脚本中添加路径的回声,例如回声路径=$path谢谢我解决的所有问题google auth是别名,因此出现了错误。嗨,Raj,我很高兴你解决了这个问题。我建议您使用该解决方案(发现)回答自己的问题,然后关闭此问题。此处没有足够的信息来准确回答您的问题。基于直觉,我认为在运行脚本时,您的$PATH没有正确地包含googleauth可执行文件。尝试运行
键入google auth
,然后从那里开始。是的,我在没有$PATH(即#!/bin/bash)的情况下尝试过,但结果仍然相同。