2015-04-17 4 views
0

У меня есть сценарий в UNIX, который выглядит следующим образом:работает скрипт из другого сценария

#!/bin/bash 

gcc -osign sign.c 

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

Всякий раз, когда я пытаюсь запустить этот сценарий, он дает мне ошибку, говоря, что кабачок не правильная команда. сквош сценарий оболочки хранится в том же каталоге, как этот сценарий и выглядит следующим образом:

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

У меня есть разрешение на выполнение установлен правильно, но по какой-то причине он не работает. Есть ли что-то еще, что мне нужно сделать, чтобы он мог работать, как показано? Я довольно новичок в написании сценариев, поэтому любая помощь будет принята с благодарностью!

+7

'squash' →'./Squash' – Biffen

ответ

2

Как упомянуто в @ комментарий Biffen, если только . не находится в вашей $PATH переменной, вам нужно указать ./squash по той же причине вам нужно указать ./sign.

При анализе голого слова в командной строке bash проверяет все каталоги, перечисленные в $PATH, чтобы узнать, является ли указанное слово исполняемым файлом, живущим внутри любого из них. Если . не находится в $PATH, bash не найдет squash.

Чтобы избежать этой проблемы, вы можете сообщить bash, чтобы не искать squash, предоставив bash полный путь к ней, а именно ./squash.

Смежные вопросы