我在我的bashrc文件中有一個簡單的函數,它需要2個參數並進行卷曲調用。問題是,curl請求沒有獲取變量。這裏的功能...變量在bash中不起作用
checkUserName() {
cd ~/
echo "checking for username $2"
curl -w "@curl-format.txt" -H "Content-Type: application/json" -X POST -d '{"userName": "$2"}' http://localhost:8080/$1/verify
}
alias unameCheck=checkUserName
然後,我喜歡的東西把它...
unameCheck users danwguy
,我會看到...
checking for username danwguy
在我的終端提示
,但是當我從我的應用程序中查看日誌時,它顯示它正在檢查userName $ 2 因此,即使$ 1被替換,curl命令中的變量也沒有被替換,因爲它調用了正確的A PI在我的本地主機上。 它在echo命令中替換它,但不在curl命令中。
我甚至嘗試過創建一個局部變量,但是這仍然不起作用,不管我做什麼,它都不會在curl調用中取代,但它在echo調用中。 任何人都可以看到爲什麼它不會正確地取代$ 2
好回答;術語可疑:'$ var'是一個參數_(變量)的引用。認識到引用並用參數的值替換它就是所謂的_parameter expansion_。 同樣,您避免_unquoted references_參數(或未加引號的命令替換/算術擴展)來防止分詞和路徑名擴展。 – mklement0