我有两个已编译的.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
谢谢你的帮助。
一些错误:
- 在shell脚本中设置变量时不能有空格-应该是
key=$?
而不是key = $?
- 无效的shebang:不是
#!/bash/bin
,而是#!/bin/bash
,甚至更好的#!/usr/bin/env bash
- 最好将变量用双引号括起来:
./cipher "$key" "$1" "$2"
- 为什么文件扩展名是
.bs
?对于shell脚本,它是.sh
,Bash没有自己的独立版本