![无法从 shell 脚本运行命令,但直接在终端中输入命令就可以了](https://linux22.com/image/983707/%E6%97%A0%E6%B3%95%E4%BB%8E%20shell%20%E8%84%9A%E6%9C%AC%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%EF%BC%8C%E4%BD%86%E7%9B%B4%E6%8E%A5%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E8%BE%93%E5%85%A5%E5%91%BD%E4%BB%A4%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86.png)
我正在尝试运行包含以下内容的 shell 脚本
ns script.tcl
sleep 100
在终端中输入命令ns
时工作正常,但是显示:
ns : not found
从 shell 脚本运行时。
答案1
#!/bin/bash
ns script.tcl
sleep 100
如果您尝试在顶部使用正确的解释器声明来运行脚本,会发生什么情况?这可能会加载您的 $PATH,这就是您的终端知道在哪里找到 的方式ns
。
如果此方法无效,您可以尝试以下操作:
#!/bin/bash
/usr/bin/ns script.tcl
sleep 100
您可能应该指向 script.tcl 所在的路径/目录。如果它与 bash 脚本位于同一目录中,那么就没问题了。但是如果您的 CWD 有 script.tcl,会发生什么?编写脚本时最好具体一点。我能够通过在终端中ns
运行来判断它的位置。which ns