Использование сценария bash для использования статуса возврата одной программы C в качестве аргумента для другой - PullRequest
0 голосов
/ 14 июля 2020

У меня есть два скомпилированных файла. c, и я пытаюсь взять статус выхода первого и использовать его в качестве аргумента для следующего.

#!/bash/bin

./decipher $1
key = $?
./cipher $key $1 $2

Это то, что я печатаю в командной строке $ ./decryption_tool.bs ceaser1.txt output.txt .ceaser1.txt - это зашифрованное сообщение, и decipher вернет ключ, а cipher должен взять этот ключ и расшифровать его. Оба файла также работают вне сценария, но когда я использую сценарий, я получаю эту ошибку.

./decryption_tool.bs: line 4: key: command not found
./decryption_tool.bs: line 5:  5937 Segmentation fault      (core dumped) ./cipher $key $1 $2

Спасибо за любую помощь.

1 Ответ

3 голосов
/ 14 июля 2020

Немногое неверно:

  1. У вас не может быть пробелов при установке переменных в сценарии оболочки - это должно быть key=$? вместо key = $?
  2. Invalid shebang: not #!/bash/bin, но #!/bin/bash или даже лучше #!/usr/bin/env bash
  3. Было бы хорошо заключить переменные в двойные кавычки: ./cipher "$key" "$1" "$2"
  4. Почему расширение файла .bs? Для сценария оболочки это .sh, а Bash не имеет отдельной отдельной версии
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...