我正在从输入文件中读取密码,然后使用该密码登录。但是,如果密码具有特殊字符,则失败。我如何使它适用于带有或不带有特殊字符的密码?尝试过'$ pass',但看起来不起作用。
ip="$(echo $line | awk -F ',' '{print $1}')"
pass="$(echo $line | awk -F ',' '{print $3}')"
output_json="$(curl -u admin:'$pass' -X GET -H "Content-Type:application/json" https://$ip:443/admin -k)"
您当前的代码存在一些问题:
echo $line
引用不正确,并且会在空格和其他特殊字符上中断;使用echo "$line"
admin:'$pass'
将解析为传递给admin:$pass
的文字字符curl
;使用"admin:${pass}"
https://$ip:443/admin
也未正确引用,请使用"https://${ip}:443/admin"
$line
设置为literal password in the script,则需要单引号使shell忽略特殊字符; line='...,sbxy$sT_i7d6I*7'