如何向经openssl enc加密的bash脚本传递执行参数?
如何向加密后的Bash脚本传递参数?
你只需要把参数直接追加在管道后的sh -后面即可,具体命令如下:
openssl enc -d -aes-256-cbc -a -in testing -pass pass:<password> | sh - 1 a 23
关键说明:
- 注意你之前的执行命令写错了加密/解密选项:加密用
-e,解密要改用-d,否则无法正确还原脚本内容。 sh -中的-表示让bash从标准输入读取脚本代码,后面跟的所有内容都会作为位置参数(对应原脚本里的$1、$2、$3)传递给解密后的脚本,和直接执行sh test.sh 1 a 23的效果完全一致。
如果参数包含空格、引号等特殊字符,需要用引号包裹避免解析错误,比如参数中有带空格的内容:
openssl enc -d -aes-256-cbc -a -in testing -pass pass:<password> | sh - 1 "hello world" 23
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

