這SED的作品,以取代在shell腳本用於Java主值:爲什麼這個'sed'在Perl中的qx()內部失敗?
sed -i 's#^JAVA_HOME=.*$#JAVA_HOME="/usr/lib/jvm/java-1.7.0-oracle.x86_64"#' /apps/tempbsu.sh
,但現在我想使用/調用該sed
從Perl的內部應用程序,使用qx()
:
qx(sed -i 's#^JAVA_HOME=.*$#JAVA_HOME="/usr/lib/jvm/java-1.7.0-oracle.x86_64"#' /apps/tempbsu.sh);
,當我這樣做,我得到一個錯誤:
sed: -e expression #1, char 58: unterminated `s' command
從檢查,據我瞭解,錯誤發生,因爲戰略經濟對話缺少最後一個分隔符,但現在看來似乎是正確的,即:
sed -i 's#.....#.......#' /apps/tempbssu.sh
誰能告訴我爲什麼這個sed
未能與我使用在Perl中的qx()
?
'$#JAVA_HOME'被視爲Perl變量(數組變量的最後一個元素的編號)。嘗試逃避它:'\ $' – toolic
哦,哇!但我不能將你的評論標記爲答案?你可以改變它到一個答案,所以我可以標記它是正確的?謝謝! – user555303
我加了答案。 – toolic