尝试使用"ZW5jb2RlIG1lCg=="
这样的脚本解码./decodetest.sh '"ZW5jb2RlIG1lCg=="'
并不会返回任何内容。我用单引号传递base64字符串以保留命令的双引号。任何帮助表示赞赏或任何其他选择。
#!/bin/ksh
OBJECT=$1
perl -MMIME::Base64 -e 'print decode_base64(${OBJECT})'
#echo ${OBJECT}
在命令行下面运行正确输出"编码我"。
perl -MMIME::Base64 -e 'print decode_base64("ZW5jb2RlIG1lCg==")'
答案 0 :(得分:3)
不是试图使嵌套引号起作用,而是将参数作为参数传递更为清晰:
#!/bin/ksh
OBJECT=$1
perl -MMIME::Base64 -e 'print decode_base64($ARGV[0])' "$OBJECT"
答案 1 :(得分:2)
可以通过%ENV
hash
perl -MMIME::Base64 -e 'print decode_base64($ENV{OBJECT})'
您可能需要在ksh中的变量上调用export
,以便子壳可以看到它。
OBJECT=$1
export OBJECT
perl -MMIME::Base64 -e 'print decode_base64($ENV{OBJECT})'
或
export OBJECT=$1
perl -MMIME::Base64 -e 'print decode_base64($ENV{OBJECT})'