Описание тега parameter-expansion

Расширение параметров заменяет переменные их значениями на этапе оценки команды в большинстве оболочек, производных от Борна.
0 ответов

Почему%~z игнорируется? (партия, ЗА)

Первая из этих двух работ, вторая ничего не дает: FOR / f %% a in ('dir C: \ / b') do (echo %% a) FOR / f %% a in ('dir C: \ / b') do (echo %% ~ za) Первая из этих двух работ, вторая ничего не дает: FOR / f "tokens = 5 delims =" %% a in ('dir C: \')…
02 дек '18 в 03:44
2 ответа

Расширение параметров оболочки на массивах

Скажем, я прочитал некоторые данные в массив Bash: $ IFS=" " read -a arr <<< "hello/how are/you iam/fine/yeah" Теперь я хочу напечатать первый /поле для каждого элемента в массиве. Что я делаю, так это перебираю элементы и использую расшире…
08 июн '16 в 09:11
3 ответа

Удалите первые цифры из строки с помощью Bash, используя расширение параметра

Начальная строка RU="903B/100ms"из которого я хочу получить B/100ms, В настоящее время я написал: #!/bin/bash RU="903B/100ms" RU=${RU#*[^0-9]} echo $RU который возвращается /100ms поскольку расширение параметра удаляет вплоть до первого нечислового …
11 авг '16 в 10:55
0 ответов

Bash: объявлять массив динамически на основе другого массива, сохраняя при этом структуру элемента

У меня есть скрипт, который можно запустить с разными "вкусами". Логика для каждого варианта почти идентична (за исключением значений переменных, которые он использует). Поэтому я решил объявить все переменные для каждого аромата, используя шаблон п…
1 ответ

bash echo - как обозначить конец команды

NL=$'\n' CMD="" CMD="$CMD echo Hello ; $NL" CMD="$CMD echo World ; $NL" $CMD Приведенный выше код дает следующий вывод, echo все после этого. Hello ; echo World ; Ни символ новой строки, ни точка с запятой здесь не работают. Что не так?
29 авг '17 в 05:59
1 ответ

Причина непоследовательного поведения одинарных кавычек при расширении параметра BASH?

При использовании BASH Parameter Expansion строка, в которую раскрывается переменная, может быть заключена в кавычки / экранироваться, что прекрасно работает, за исключением случаев, когда используются одинарные кавычки и вся переменная экранируется…
14 дек '18 в 19:12
1 ответ

Двойные кавычки в расширении параметров Zsh

У меня есть два теста в zsh А. без кавычек ~$ y=(${(f)$(echo -e "a b\nc d")}); printf "<%s>\n" "${y[@]}" <a b c d> Б. с цитатами ~$ y=(${(f)"$(echo -e "a b\nc d")"}); printf "<%s>\n" "${y[@]}" <a b> <c d> Однако, если я…
31 дек '18 в 03:34
2 ответа

Механика этого синтаксиса оболочки: ${1:-$(</ dev / stdin)}

Я недавно столкнулся с этим действительно аккуратным синтаксисом, в контексте создания bash функции, которые могут принимать аргумент или поток из STDIN (т.е. могут быть переданы по каналу). На первый взгляд, я понимаю, что здесь происходит, но я хо…
2 ответа

Regex matching end of a line $ not working in Bash Script

I'm trying to do a simple regex statement in a bash script that will match and substitute the end of a word. Ниже то, что я пытаюсь сделать. wordh &gt; word:’ Ниже приведен код, который я использую. #!/bin/bash STAT=${STAT/h$/:’} I'm not familiar wi…
09 янв '16 в 06:24
1 ответ

CD ${1:-.} что это значит

#====================script 5 -- ls reccurssive avec cd ======= #!/bin/bash exec 2&gt;/dev/null # redirige stderr pour toute la suite # au cas ou le script est invoque sans argument $1 # n'existe pas, la commande suivante devient cd . cd ${1:-.} # p…
12 фев '17 в 10:34
3 ответа

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

Как правильно вызвать команду, хранящуюся в переменной?Есть ли различия между 1 и 2? #!/bin/sh cmd="ls -la $APPROOTDIR | grep exception" #1 $cmd #2 eval "$cmd"
12 янв '11 в 12:13
1 ответ

Неправильное расширение параметров класса символов Bash

Вот все шаги, которые, кажется, предлагают мне ошибку в bash. Информация о версии и платформе --&gt; cat /etc/os-release NAME="Ubuntu" VERSION="14.04.5 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04.5 LTS" VERSION_ID="14.04" HO…
20 ноя '16 в 19:56
2 ответа

Bash: Как использовать расширение параметра оператора ${параметр @ оператор}?

Я гуглил и пробовал так много вещей и никогда не мог заставить что-либо работать с ${parameter@operator}. Все, что я нахожу, - больше ссылок на ту же документацию. Поэтому я думаю, что правильный ответ с практическими примерами был бы очень полезен …
1 ответ

В bash, что означает dir=${0%/*}?

Я нашел этот кусок кода во время изучения сценария bash: dir=${0%/*} Я подозреваю, что код внутри скобок является регулярным выражением, но я не понимаю, что это значит. Любая идея?
22 дек '16 в 15:40
2 ответа

В Bash, есть ли способ дважды раскрыть переменные в двойных кавычках?

Для отладки моих сценариев я хотел бы добавить внутренние переменные $FUNCNAME и $LINENO в начале каждого из моих выходных данных, чтобы я знал, на какую функцию и номер строки выводятся выходные данные. foo(){ local bar="something" echo "$FUNCNAME …
1 ответ

Установка переменных по умолчанию с расширением параметра vs if/else test -z

Поэтому традиционно, когда я пишу скрипты bash с флагами аргументов, я реализую значения по умолчанию с помощью базового оператора test, например if [ -z $foo ] then foo=$bar fi Сегодня я столкнулся с более сложными расширениями параметров, которые,…
3 ответа

Извлечь подстроку перед точкой

Я пытаюсь вычесть первую строку перед dot (.) в баш. Например: 1.2.3 -&gt; 1 11.4.1 -&gt; 11 Я использовал следующую команду на основе документов: s=4.5.0 echo "${s%.*}" Но это выходы 4.5 вместо 4, Я не понимаю Это почему?
22 ноя '16 в 09:40
2 ответа

Расширение переменной сценария оболочки с помощью escape

Следующий скрипт: #!/bin/bash nested_func() { echo $1 echo $2 } func() { echo $1 nested_func $2 } func 1 "2 '3.1 3.2'" Выходы: 1 2 '3.1 Что я хотел бы получить в качестве вывода: 1 2 3.1 3.2 Как мне добиться этого выхода с одним параметром на func в…
2 ответа

Некоторый вывод, потерянный в команде, передан в SSH

Я пытаюсь использовать команду SSH для SSH к серверу и запуститьuseradd Команда, которую я передал ему. Похоже, что он работает нормально по большей части (без ошибок), но хешированный пароль в /etc/shadow в файле не хватает соли (я думаю, что это т…
07 дек '17 в 19:23
3 ответа

Как извлечь подстроку в оболочке Рыба?

Я получил следующую переменную: set location "America/New_York" и хотите отобразить только часть до / (косая черта) используя fish Синтаксис оболочки. Ожидаемый результат Америка Баш эквивалент Используя bash, я просто использовал расширение парамет…
09 дек '15 в 20:16