Я не могу обновить переменную с помощью команды sed

Да, вы можете автоматически подписывать коммиты, установив параметр commit.gpgsign .

Однако вам понадобится ключ типа PGP , а не ключ SSH. Что вы можете сделать, так это использовать gpg-agent в качестве ssh-агента .

0
22.05.2019, 21:29
1 ответ

Во-первых, вам не нужно catс grep. Этого достаточно:

x="$(grep ConfigPath /scratch/env.properties)"

Во-вторых, я считаю, что это не то задание, которое вам нужно:

y=$(ConfigPath=/scratch/a/b)

Если вы хотите, чтобы переменная yсодержала строку ConfigPath=/scratch/a/b, она должна быть:

y="ConfigPath=/scratch/a/b"

$(...)— это замена команды в Bash .

В-третьих, вы должны использовать двойные кавычки в команде sed, чтобы сделать расширение оболочки xиy:

sed "s/$x/$y/" env.properties

Также обратите внимание, что /— плохой выбор при работе с путями Unix. потому что это разделитель. Используйте другой символ, например запятая:

sed "s,$x,$y," env.properties

Как отметил пользователь Кусалананда в комментарии ниже вы делаете это проще и лучше, используя только sedи убедившись, что ConfigPathнаходится в начале строки:

sed "s,^ConfigPath=.*$,ConfigPath=/scratch/a/b," env.properties
2
28.01.2020, 02:30

Теги

Похожие вопросы