Экспортировать набор переменных среды с правильным экранированием

Я нашел этот поток и решил использовать id3tool. Я только интересовался очень легким инструментом, командная строка была прекрасна. Попытка сохранить мою систему свободной от помехи навлекаемый иногда тяжелыми интенсивными GUI инструментами.

Установка супер была легка на Linux Mint:

sudo apt-get install id3tool

Насколько я помню, что это не потребовало никаких дополнительных библиотек или чего-либо. Получить полный список доступных вариантов:

man id3tool

Видеть текущие метаданные для mp3 файла:

id3tool <filename.mp3>

Вот команда, я раньше обновлял вполне afew mp3:

id3tool -t "<song title>" -a "<album name>" -r "<artist name>" -y "<year>" -c <track number, no quotes, just the number, like 1> <filename.mp3>

После выполнения этого я сказал Банши повторно сканировать свою музыкальную библиотеку и в "Неизвестной" Категории больше не было никаких файлов. Благодаря strangeronyourtrain для этой подсказки!

6
05.10.2015, 18:52
1 ответ

В zsh или yash .

export -p myvariable myvariable2

будет работать, как и следовало ожидать.

В противном случае в bash вы все еще можете:

for var in myvariable myvariable2; do
  printf 'export %s=%q\n' "$var" "${!var}"
done

В POSIX-кодировке вы можете цитировать вручную, используя awk :

awk -v q="'" '
  function escape(v) {
    gsub(q, q "\\" q q, v)
    return q v q
  }
  BEGIN {
    for (i = 1; i < ARGC; i++)
      print "export " ARGV[i] "=" escape(ENVIRON[ARGV[i]])
  }' myvariable myvariable2

Для развлечения, хакерское решение, которое работает в некоторых оболочках ( bash , zsh , mksh , ksh93 , но не yash или dash ):

 (PS4=; set -x; export "myvariable=$myvariable") 2>&1
2
27.01.2020, 20:30

Теги

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