Кажется, у меня есть некоторые трудности с получением того, что я хочу, на работу. По сути, у меня есть ряд переменных, которым присваиваются строки с некоторыми кавычками и символами \. Я хочу удалить кавычки, чтобы встроить их в документ json, поскольку json ненавидит кавычки с использованием методов дампа python.
Я подумал, что это будет легко. Просто определите, как легко удалить символы, а затем напишите простой цикл for для подстановки переменных, ну, это не сработало.
Вот что я хочу сделать.
Существует переменная с именем «MESSAGE23», она содержит следующий «com.centrify.tokend.cac», я хочу убрать кавычки, что для меня легко, простой echo $opt | sed "s/\"//g"
. Когда я делаю это из командной строки:
$> MESSAGE23="com."apple".cacng.tokend is present"
$> MESSAGE23=`echo $MESSAGE23 | sed "s/\"//g"`
$> com.apple.cacng.tokend is present
Это работает. Я получаю правильно отформатированную строку.
Когда я затем пытаюсь бросить это в цикл, весь ад вырывается на свободу.
for i to {1..25}; do
MESSAGE$i=`echo $MESSAGE$i | sed "s/\"//g"`
done
Это не работает (либо выбрасывает кучу индексов, либо ничего), и я почти уверен, что просто недостаточно знаю о arg
или eval
или других переменных подстановки bash.
Но в основном я хочу сделать это для другого набора переменных с теми же проблемами, где я удаляю кавычки и, кстати, "\".
Любая помощь будет принята с благодарностью.