在bash正則表達式中逃脫美元符號的正確方法是什麼?我試圖測試一個字符串是否以美元符號開頭。這裏是我的代碼,我在其中雙我的雙引號表達式中逃離美元:Bash - 在正則表達式中逃離美元的正確方法
echo -e "AB1\nAB2\n\$EXTERNAL_REF\nAB3" | while read value;
do
if [[ ! $value =~ "^\\$" ]];
then
echo $value
else
echo "Variable found: $value"
fi
done
這做什麼,我想爲它有一個框:
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
而詳細的輸出顯示
+ [[ ! $EXTERNAL_REF =~ ^\$ ]]
+ echo 'Variable found: $EXTERNAL_REF'
然而,在另一臺電腦,它使用
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
的比較如下
+ [[ ! $EXTERNAL_REF =~ \^\\\$ ]]
+ echo '$EXTERNAL_REF'
是否有一個標準的/更好的辦法做到這一點,將在所有實施工作擴大呢?
非常感謝
完美,這是一個很好的解決方法,並且可以在兩種實現方式下實現。謝謝 – user1198484