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

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

427
Использование «$ {a: -b}» для назначения переменных в скриптах

Я смотрел на несколько сценариев, написанных другими людьми (в частности, на Red Hat), и многие их переменные присваиваются с использованием следующих обозначений VARIABLE1="${VARIABLE1:-some_val}" или некоторых других переменных. VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}" Какой смысл использовать...

113
Существуют ли соглашения по именованию переменных в сценариях оболочки?

Большинство языков имеют соглашения по именованию переменных, наиболее распространенный стиль, который я вижу в скриптах оболочки MY_VARIABLE=foo. Это соглашение или это только для глобальных переменных? Как насчет переменных, локальных для...

70
Как проверить, существует ли переменная в операторе if?

Мне нужно проверить существование переменной в ifзаявлении. Что-то с эффектом: if [ -v $somevar ] then echo "Variable somevar exists!" else echo "Variable somevar does not exist!" И самый близкий вопрос к этому был этим , который фактически не отвечает на мой...

59
Передать переменную оболочки как / pattern / в awk

Имея следующее в одной из моих функций оболочки: function _process () { awk -v l="$line" ' BEGIN {p=0} /'"$1"'/ {p=1} END{ if(p) print l >> "outfile.txt" } ' } , Так что, когда называется _process $arg, $argполучает прошло , как $1и используется в качестве шаблона поиска. Это работает так,...

54
Как назначить строковое значение переменной в несколько строк при отступе?

Проблема: Мне нужно присвоить переменной значение, которое прилично долго. Все строки моего скрипта должны быть под определенным количеством столбцов. Итак, я пытаюсь назначить его, используя более одной строки. Обойтись без отступов просто: VAR="This displays without \ any issues." echo "${VAR}"...

42
Проверить, содержит ли строка подстроку

У меня есть код file="JetConst_reco_allconst_4j2t.png" if [[ $file == *_gen_* ]]; then echo "True" else echo "False" fi Я проверяю, fileсодержит ли "gen". Выход «Ложь». Ницца! Проблема в том, когда я заменяю «gen» переменной testseq : file="JetConst_reco_allconst_4j2t.png" testseq="gen" if [[ $file...

36
Почему открытие файла происходит быстрее, чем чтение содержимого переменной?

В bashскрипте мне нужны различные значения из /proc/файлов. До сих пор у меня есть десятки строк, которые напрямую копируют файлы: grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo Чтобы сделать это более эффективным, я сохранил содержимое файла в переменной и добавил следующее: a=$(</proc/meminfo)...

35
Как мы можем запустить команду, хранящуюся в переменной?

$ ls -l /tmp/test/my\ dir/ total 0 Мне было интересно, почему следующие способы запуска вышеуказанной команды не удаются или преуспеют? $ abc='ls -l "/tmp/test/my dir"' $ $abc ls: cannot access '"/tmp/test/my': No such file or directory ls: cannot access 'dir"': No such file or directory $ "$abc"...

30
Как назначить вывод cat скрипта bash переменной в другом скрипте

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

28
Область действия локальных переменных в функциях оболочки

После прочтения 24.2. Локальные переменные , я думал, что объявление переменной varс ключевым словом localозначало, что varзначение было доступно только внутри блока кода, ограниченного фигурными скобками функции. Однако после запуска следующего примера, я обнаружил, что varтакже может быть...

25
Почему моя переменная локальна в одном цикле 'while read', а не в другом, на первый взгляд, похожем цикле?

Почему я получаю разные значения $xиз приведенных ниже фрагментов? #!/bin/bash x=1 echo fred > junk ; while read var ; do x=55 ; done < junk echo x=$x # x=55 .. I'd expect this result x=1 cat junk | while read var ; do x=55 ; done echo x=$x # x=1 .. but why? x=1 echo fred | while read var ;...

23
Зачем использовать двойные кавычки в тесте [[]]?

Допустим, у нас есть 2 целых числа в скрипте bash: value1=5 value2=3 Тогда зачем нам использовать двойные кавычки в случае теста? Например: if [[ "$value1" -eq "$value2" ]] Почему бы просто не использовать следующее? if [[ $value1 -eq $value2 ]] Для меня двойные кавычки не имеют никакого...