小编gho*_*ade的帖子

运行 base64 编码的 bash 脚本给我错误

我有一个 bash 脚本;该脚本是生成一个随机数并让用户猜测它。

printf 'Guess the number (1-10) : '
read -r n
randint=$(( ( RANDOM % 10 )  + 1 ))
if [ $n = $randint ];
then
echo "You Won !"
else
echo "Sorry, try again !"
fi
Run Code Online (Sandbox Code Playgroud)

它有效,但在下一个脚本中,我已将此代码编码为 base64 并尝试使用以下代码运行它。

exec="cHJpbnRmICdHdWVzcyB0aGUgbnVtYmVyICgxLTEwKSA6ICcKcmVhZCAtciBuCnJhbmRpbnQ9JCgoICggUkFORE9NICUgMTAgKSAgKyAxICkpCgppZiBbICRuID0gJHJhbmRpbnQgXTsKdGhlbgplY2hvICJZb3UgV29uICEiCmVsc2UKZWNobyAiU29ycnksIHRyeSBhZ2FpbiAhIgpmaQ=="
base64 -d <<< $exec | sh
Run Code Online (Sandbox Code Playgroud)

它在 Cygwin 终端中给出此错误:

Guess the number (1-10) : sh: line 4: [: too many arguments
Sorry, try again !
Run Code Online (Sandbox Code Playgroud)

我尝试了在线编译器,但也失败了:

sh: 5: [: =: unexpected operator
Run Code Online (Sandbox Code Playgroud)

我不知道要解决这个问题。

shell cygwin shell-script base64

3
推荐指数
1
解决办法
1580
查看次数

标签 统计

base64 ×1

cygwin ×1

shell ×1

shell-script ×1