Этот sed работает, чтобы заменить значение для дома Java в сценарии оболочки:
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 выражение #1, char 58: неограниченная команда `s'
Из проверки я понял, что эта ошибка возникает из-за того, что в sed отсутствует последний разделитель, но кажется, что это правильно, то есть:
sed -i 's#.....#.......#' /apps/tempbssu.sh
Может ли кто-нибудь сказать мне, почему этот sed
не работает, когда я использую qx()
в Perl?
use strict;
иuse warnings
(если только вы по какой-то причине не заявите@JAVA_HOME
) 07.06.2017