我编写了一个卷曲和下载数据库的脚本
DB_URL="$(curl --user $1:$2 -s https://myurl.com/ | grep -o \http\:[a-zA-Z.0-9\:/-]* | grep DBNAME$ | tail -1)"
echo -e "\033[33;31m The database is here :"
echo $DB_URL
但是,$ 1和$ 2并没有被我传递的两个参数所取代。我该怎么做?我尝试了许多不同的替代方法,但仍然没有成功。
通过用正确的用户名和密码替换$ 1和$ 2来直接执行
答案 0 :(得分:0)
要回答我自己的问题,这有效:
DB_URL=$(curl --user "$1":"$2" -s https://myurl.com/ | grep -o \http\:[a-zA-Z.0-9\:/-]* | grep DBNAME$ | tail -1)
必须将变量放在引号中。
请参阅下面的glenn评论。引号阻止了密码中的特殊字符被解释。