Вопросы с тегом «variable»

12
Видите расширение переменных Bash для отладки?

Есть ли какие-либо инструменты / приемы для расширения переменных, чтобы облегчить чтение bash-кода? Например, это будет конвертировать следующее: DIR=/var/tmp FILE=${DIR}/file SCRIPT_ROOT=/opt/root TOOL=${SCRIPT_ROOT}/tool.sh ${TOOL} ${FILE} чтобы: DIR=/var/tmp FILE=/var/tmp/file...

12
динамические (переменные) имена переменных bash

Я хочу динамически создавать последовательность строк, манипулируя массивом элементов и создавая некоторую арифметическую процедуру. for name in FIRST SECOND THIRD FOURTH FIFTH; do $name = $(( $6 + 1 )) $name = "${$name}q;d" echo "${$name}"; printf "\n" done Желание результата будет ниже для...

12
Как я могу развернуть тильду ~ как часть переменной?

Когда я открываю приглашение bash и набираю: $ set -o xtrace $ x='~/someDirectory' + x='~/someDirectory' $ echo $x + echo '~/someDirectory' ~/someDirectory Я надеялся, что 5-я строка выше пошла бы + echo /home/myUsername/someDirectory. Есть ли способ сделать это? В моем исходном скрипте Bash...

12
Как хранить pipe (|) в переменной?

Идея состоит в том, чтобы использовать его как ... канал в команде. Например: скажем, есть какой-то длинный путь, который нужно набирать снова и снова, после чего следует канал и вторая программа, т.е. "directory1/directory2/direcotry3/file.dat | less -I " Я бы хотел, чтобы эта часть была сохранена...

12
Сериализация переменной оболочки в bash или zsh

Есть ли способ сериализации переменной оболочки? Предположим, у меня есть переменная $VAR, и я хочу иметь возможность сохранить ее в файл или что-то еще, а затем прочитать позже, чтобы вернуть то же значение? Есть ли портативный способ сделать это? (Я так не думаю) Есть ли способ сделать это в bash...

11
Как использовать переменные внутри одинарных кавычек

У меня есть приложение, которое принимает в качестве входных атрибутов в двойных кавычках, встроенных в одинарные кавычки. Возьмем для примера правильную команду: command -p 'cluster="cl1"' Чтобы автоматизировать это, я создал файл bash, используя $CLUSTERв качестве переменной. Как должна быть моя...

11
Почему содержимое JSON из heredoc не может быть разобрано?

У меня есть фрагмент JSON. Следующее не работает: VALUE=<<PERSON { "type": "account", "customer_id": "1234", "customer_email": "jim@gmail.com" } PERSON echo -n "$VALUE" | python -m json.tool Результат: Ни один объект JSON не может быть декодирован Делать то же самое с jq, т.е. echo -n...

11
Как отобразить пустые фигурные скобки JSON в качестве значения по умолчанию?

Похоже, я не могу получить пустой JSON, {}если отсутствует envvar. У меня либо есть трейлинг }на выходе, если он установлен, либо экранирование. bash-3.2$ unset X bash-3.2$ echo "${X:-{}}" {} bash-3.2$ X=y bash-3.2$ echo "${X:-{}}" y} bash-3.2$ echo "${X:-{\}}" y bash-3.2$ unset X bash-3.2$ echo...

11
Почему я не могу использовать переменные в качестве префикса команды для установки переменных среды?

Как правило, для команды можно установить переменную среды, добавив к ней префикс следующим образом: hello=hi bash -c 'echo $hello' Я также знаю, что мы можем использовать переменную для замены любой части вызова команды, например: $ cmd=bash $ $cmd -c "echo hi" # equivalent to bash -c "echo hi" Я...

11
Как заставить `local` захватить код выхода?

В моем проекте у меня есть следующий фрагмент: local output="$(bash "${1##*/}")" echo "$?" Это всегда печатает ноль из-за local, однако, удаление localзаставляет $?переменную вести себя правильно: что предполагает код выхода из подоболочки. Мой вопрос: как я могу сохранить эту переменную локально,...

10
Как POSIX-ли подсчитать количество строк в строковой переменной?

Я знаю, что могу сделать это в Bash: wc -l <<< "${string_variable}" В основном все, что я нашел, связано с <<<оператором Bash. Но в оболочке POSIX <<<она не определена, и я часами не мог найти альтернативный подход. Я совершенно уверен, что есть простое решение, но, к...

10
Можете ли вы объяснить эти три вещи в этом коде Bash для меня?

У меня есть functionв моем .bashrcфайле. Я знаю, что он делает, он увеличивает X каталогов сcd Вот: up() { local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } Но можете ли вы объяснить эти три вещи из этого для...

10
Как напечатать имя переменной вместе с ее значением?

Есть ли способ, как я могу напечатать имя переменной вместе с ее значением? j=jjj k=kkk l=lll for i in j k l do .... done Ожидаемый результат (каждая переменная в отдельной строке): j = jjj k = kkk l = lll Кто-нибудь может предложить способ получить вышеуказанный...

10
Как определяется статус возврата присвоения переменной?

Я видел конструкции в сценариях, таких как это: if somevar="$(somecommand 2>/dev/null)"; then ... fi Это где-то задокументировано? Как определяется возвращаемый статус переменной и как она связана с подстановкой команд? (Например, получу ли я такой же результат с if echo "$(somecommand...

9
«Вариабилизация» амперсанда (фоновый процесс)

Я хочу знать, есть ли способ поместить амперсанд в переменную и по-прежнему использовать его для отправки процесса в фоновый режим. Это работает: BCKGRND=yes if [ "$BCKGRND" = "yes" ]; then sleep 5 & else sleep 5 fi Но разве не здорово было бы выполнить эти пять строк одной? Вот так:...

9
Инициализация переменных Bash - требуется, рекомендуется или определяется по мере продвижения

Есть ли преимущество / недостаток инициализации значения переменной bash в скрипте, либо перед основным кодом, либо перед локальными переменными в функции перед присвоением ей фактического значения? Мне нужно сделать что-то вроде этого: init() { name="" name=$1 } init "Mark" Есть ли риск того, что...