что-то вроде:
VAR=$(sed -n '/HIJK=/s/HIJK="\([^"]*\)"/\1/p' aaa.txt)
Не печатайте строки по умолчанию (-n
), но на строках, соответствующих HJIK=
(/HJIK=/
), замените HJIK="(что-то, не содержащее двойных кавычек)"
на (что-то, не содержащее двойных кавычек)
: s/HIJK="\([^"]*\)"/\1/
и распечатать их - флаг p
.
Проблема в том, что ваш sudo su ...
порождает другую оболочку, и только когда вы выходите из
из это делает попытку вашего сценария продолжить.
Предполагая, что ваша конфигурация sudo
это позволяет, вы можете сделать это вместо этого:
sudo -iu oradba 'cd ... && chmod ... && chown ... '
sudo -iu orainst '...'
&&
можно было бы заменить точкой с запятой, просто так, вы гарантируете что chmod
не будет выполняться, если cd
не будет успешным, и так далее.
Если ваша конфигурация sudo
не позволяет этого, вы можете сделать это вместо этого:
sudo su -c 'cd ... & chmod ... && chown ... ' - oradba
sudo su -c '...' - orainst