尝试在ksh中运行它:
echo -n "string to encode" |
openssl enc -aes-128-cbc -a -salt -pass file:<(print -n 'somepassword')
保持错误:
unknown option '/dev/fd/10'
我做错了什么,我已经搜索了但没有答案。
答案 0 :(得分:2)
在bash和ksh中,进程替换的工作方式不同。 Bash将结果附加到当前单词,ksh创建一个新单词:
$ cat testcase
showargs() { printf 'Arg: %q\n' "$@"; }
showargs file:<(echo -n foo)
$ bash testcase
Arg: file:/dev/fd/63
$ ksh testcase
Arg: file:
Arg: /dev/fd/3
我不知道ksh是否支持在openssl要求的形式上构造参数,因此要么使用其他密码传递机制之一,要么使用临时文件,手动打开自己的fd,要么切换shell。 / p>
PS:-d
表示“解密”。