我在unix中有一个如下所示的脚本:
#!/bin/bash
gcc -osign sign.c
./sign < /usr/share/dict/words | sort | squash > out
每当我尝试运行此脚本时,它会给我一个错误,说壁球不是一个有效的命令。 squash是一个shell脚本,存储在与此脚本相同的目录中,如下所示:
#!/bin/bash
awk -f squash.awk
我已正确设置执行权限但由于某种原因它无法运行。还有什么我需要做的才能让它能够如图所示运行吗?我对脚本非常陌生,所以任何帮助都会非常感激!
答案 0 :(得分:2)
正如@ Biffen的评论中所述,除非.
变量中包含$PATH
,否则您需要指定./squash
,原因与您需要指定./sign
相同。< / p>
在解析命令行中的单词时,bash会检查$PATH
中列出的所有目录,以查看所述单词是否是位于其中任何一个内的可执行文件。除非.
位于$PATH
,否则bash将找不到squash
。
为了避免这个问题,你可以告诉bash不要通过给bash提供完整的路径squash
来寻找./squash
。