使用bash脚本将一个C程序的返回状态用作另一个程序的arg



我有两个已编译的.c文件,我正试图获取第一个文件的退出状态,并将其用作下一个文件的arg。

#!/bash/bin
./decipher $1
key = $?
./cipher $key $1 $2

这是我在命令行上键入的内容$ ./decryption_tool.bs ceaser1.txt output.txt.caser.txt是一个加密的消息,decrypt将返回一个密钥,而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. 在shell脚本中设置变量时不能有空格-应该是key=$?而不是key = $?
  2. 无效的shebang:不是#!/bash/bin,而是#!/bin/bash,甚至更好的#!/usr/bin/env bash
  3. 最好将变量用双引号括起来:./cipher "$key" "$1" "$2"
  4. 为什么文件扩展名是.bs?对于shell脚本,它是.sh,Bash没有自己的独立版本

最新更新