从另一个脚本运行shell脚本

时间:2015-04-17 19:28:47

标签: bash shell scripting

我在unix中有一个如下所示的脚本:

#!/bin/bash

gcc  -osign sign.c

./sign < /usr/share/dict/words | sort | squash > out

每当我尝试运行此脚本时,它会给我一个错误,说壁球不是一个有效的命令。 squash是一个shell脚本,存储在与此脚本相同的目录中,如下所示:

#!/bin/bash
awk -f squash.awk

我已正确设置执行权限但由于某种原因它无法运行。还有什么我需要做的才能让它能够如图所示运行吗?我对脚本非常陌生,所以任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:2)

正如@ Biffen的评论中所述,除非.变量中包含$PATH,否则您需要指定./squash,原因与您需要指定./sign相同。< / p>

在解析命令行中的单词时,bash会检查$PATH中列出的所有目录,以查看所述单词是否是位于其中任何一个内的可执行文件。除非.位于$PATH,否则bash将找不到squash

为了避免这个问题,你可以告诉bash不要通过给bash提供完整的路径squash来寻找./squash