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

Переменная - это имя, если оно выбрано правильно с символическим значением, которое содержит значение или значения. Используйте этот тег, если ваш вопрос касается использования переменных в сценариях оболочки (если вы хотите спросить о переменных в языках программирования, вам, вероятно, следует задать их в StackOverflow)

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

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

4
Почему содержимое 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 "$VALUE" | jq '.' Нет выхода. Существует …

3
Как отобразить пустые фигурные скобки 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 "${X:-{\}}" {\} bash-3.2$ echo "${X:-'{}'}" '{}' …
11 bash  variable 

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


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


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


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

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

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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.