Добавить переменную строку к себе

У меня есть переменная в цикле do. Я добавляю его содержимое в файл, но я хочу добавить его себе, чтобы использовать его для других вещей, таких как отправка почты.

Я попробовал variable+=$variable но она не сработала.

Я хочу иметь доступ к переменной за пределами do … done

2 Solutions collect form web for “Добавить переменную строку к себе”

Бьюсь об заклад, ваша петля является частью конвейера

 seq 5 | while read num; do x+=$num; done; echo $x # expect "12345", actually see "" 

В bash, когда вы строите конвейер, он порождает подоболочки для всех частей. Когда подоболочка выходит, любые измененные вами переменные также уничтожаются.

Вы должны запрограммировать более тщательно, чтобы убедиться, что вы используете переменную в той же оболочке, где вы ее изменяете.

Этот пример повторяет var в одной и той же подоболочке:

 $ seq 5 | { while read num; do x+=$num; done; echo $x; } 12345 

В этом примере используется подстановка процесса, поэтому цикл выполняется в текущей оболочке

 $ while read num; do x+=$num; done < <(seq 5) $ echo $x 12345 

Если это просто строки, вы можете добавить следующее:

пример

 $ somevar="a string" $ echo $somevar a string $ somevar="$somevar$somevar" $ echo $somevar a stringa string 

Loops

Вы можете использовать ту же технику в цикле for в Bash.

 $ a="0"; for i in $(seq 3); do a="$a$i"; echo "$i | $a"; done 1 | 01 2 | 012 3 | 0123 
  • Печать переменной в одиночной кавычки в bash | Странные переменные
  • Количество символов в выводе команды оболочки
  • bash - чтение пользовательской переменной в скрипт bash grep
  • scripting-Игнорирование переменной при неопределенной
  • Значение SQLPLUS в переменной - не работает от crontab
  • как обмениваться переменными среды между оболочками, такими как глобальные переменные, связанные с мастером pid?
  • Объявите, что локальный var нарушит функцию и выйдет из системы «1: число, ожидаемое»,
  • Как подсчитать, сколько ip в bash?
  • Отменить переменную окружения http_proxy
  • Как назначить строковое значение переменной по нескольким строкам с отступом?
  • Задайте переменную внутри heredoc, используйте переменную вне heredoc
  • Interesting Posts

    Получить PHP7.0 на Debian 7

    Недопустимый заголовок стандартной библиотеки Arch Linux c ++ UTF-8

    Как вставить названный регистр из командной строки vim

    Является ли двойная тире еще стандартом posix для длинных переключателей?

    Как сделать изменение смены журнала

    Какое расширение используется для текстовых файлов? (Unix / Linux)

    Как найти недостающий код C

    Почему фоновые процессы иногда останавливаются спонтанно?

    Не удалось переустановить ядро ​​или использовать последнюю версию

    Измерьте время выполнения команды, включая расширение подстановки команд

    Паника в ядре после установки Gentoo – невозможно открыть корневое устройство

    Как разместить сайт локальной сети, недоступный за пределами локальной сети?

    Переменная Path и скрипт скрипта не будут запускать правильную версию python

    Плохое монтирование NFS предотвращает чистую загрузку?

    Почтовый уведомитель IMAP для оконного менеджера / панели задач?

    Linux и Unix - лучшая ОС в мире.