簡體   English   中英

執行另一個命令時,shell腳本中的參數替換

[英]Parameter substitution within shell script when executing another command

我寫了一個腳本,可以卷曲和下載數據庫

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替換為正確的用戶名和密碼即可正常工作

為了回答我自己的問題,這可行:

DB_URL=$(curl --user "$1":"$2" -s https://myurl.com/ | grep -o \\http\\:[a-zA-Z.0-9\\:/-]* | grep DBNAME$ | tail -1)

必須將變量放在引號中。

請參閱下面的glenn評論。 引號防止解釋密碼中的特殊字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM