String 用于读取';openssl帮助';
我尝试读取bash命令“openssl help”的输出,并将其放入字符串变量中进行进一步处理 准确地说,我想测试所有密码命令 首先,我尝试读取命令“openssl密码”的输出。但我只有密码,没有密码命令。但如果我键入“openssl帮助”,则会显示密码命令。问题是现在命令的输出没有保存在我的变量中String 用于读取';openssl帮助';,string,bash,openssl,String,Bash,Openssl,我尝试读取bash命令“openssl help”的输出,并将其放入字符串变量中进行进一步处理 准确地说,我想测试所有密码命令 首先,我尝试读取命令“openssl密码”的输出。但我只有密码,没有密码命令。但如果我键入“openssl帮助”,则会显示密码命令。问题是现在命令的输出没有保存在我的变量中 CIPHER=`openssl ciphers` echo "Output:" echo $CIPHER 这很有效。但不幸的是,$CIPHER的内容不是我需要的 CIPHER=`openssl h
CIPHER=`openssl ciphers`
echo "Output:"
echo $CIPHER
这很有效。但不幸的是,$CIPHER的内容不是我需要的
CIPHER=`openssl help`
echo "Output:"
echo $CIPHER
这不管用。变量密码为空。为什么?似乎
openssl帮助
内容被写入标准错误流stderr(2)
而不是stdout(1)
。建议将错误流(由文件描述符2表示)重新重定向到标准输出(由文件描述符1表示)以修复此问题
由于输出包含多行流,建议使用适当的双引号将$(..)
命令替换包含在反勾号(过时的技术)之上
sslOutput="$(openssl help 2>&1)"
printf "%s\n" "${sslOutput}"
查看为什么似乎
openssl帮助内容被写入标准错误流stderr(2)
而不是stdout(1)
。建议将错误流(由文件描述符2表示)重新重定向到标准输出(由文件描述符1表示)以修复此问题
由于输出包含多行流,建议使用适当的双引号将$(..)
命令替换包含在反勾号(过时的技术)之上
sslOutput="$(openssl help 2>&1)"
printf "%s\n" "${sslOutput}"
查看原因您想要openssl密码
或openssl帮助
?您想要openssl密码
或openssl帮助
?另请参见