为什么会有这样的命令;谷歌认证;可以在终端中工作,但不能从bash脚本中工作?
我已经在ubuntu 16.0405服务器上安装了libpam google authenticator和freeradius。一切正常,除了在bash脚本中使用命令googleauth时,我会收到一条错误消息“googleauth:command not found” 但如果我直接把它放在终端上,同样的效果为什么会有这样的命令;谷歌认证;可以在终端中工作,但不能从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 此
#!/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)的情况下尝试过,但结果仍然相同。