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

1
Что означает подстановка $ {! Var_name + x}?
Я нашел скрипт, который имеет функцию, которая проверяет, установлена ​​ли переменная, но я не очень хорошо ее понимаю. check_if_variable_is_set() { var_name=$1 if [ -z "${!var_name+x}" ]; then false else true fi } Что именно происходит с этой заменой?

3
Может ли подстановка команд быть вложенной в подстановку переменных?
Я хотел бы использовать подстановку переменных в конкретной строке, к которой я обращаюсь через команду. Например, если я скопирую что-то в буфер обмена, я получу к нему доступ следующим образом. $ xclip -o -selection clipboard Here's a string I just copied. Если я назначу его переменной, то я могу сделать …

2
Добавлять переменную в стиле PATH без создания начального двоеточия, если не установлено
Мне нужно добавить каталог в PKG_CONFIG_PATH. Обычно я бы использовал стандарт export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig но PKG_CONFIG_PATHне было ранее установлено в моей системе. Следовательно, переменная начинается с :символа, который говорит ей сначала искать в текущем каталоге. Я не хочу этого. Я остановился на следующем, export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig но это только кажется …

3
Как передать аргумент, хранящийся в переменной, в WGET?
Я пишу сценарий bash, который широко использует wget. Чтобы определить все общие параметры в одном месте, я храню их в переменных. Вот кусок кода: useragent='--user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"' cookies_file="/tmp/wget-cookies.txt" save_cookies_cmd="--save-cookies $cookies_file --keep-session-cookies" load_cookies_cmd="--load-cookies $cookies_file --keep-session-cookies" function mywget { log "#!!!!!!!!!# WGET #!!!!!!!!!# wget $quiet $useragent $load_cookies_cmd …

10
Bash: извлеките один из четырех разделов адреса IPv4
Мы можем использовать синтаксис ${var##pattern}и ${var%%pattern}извлечь последний и первый раздел адреса IPv4: IP=109.96.77.15 echo IP: $IP echo 'Extract the first section using ${var%%pattern}: ' ${IP%%.*} echo 'Extract the last section using ${var##pattern}: ' ${IP##*.} Как мы можем извлечь второй или третий раздел адреса IPv4, используя расширение параметра? Вот мое решение: …

2
Grep, чтобы найти правильную строку, sed, чтобы изменить содержимое, а затем положить его обратно в исходный файл?
Я пытаюсь изменить одно слово в определенной строке в файле, но у меня возникают проблемы с соединением всех вместе. По сути, в одной строке моего файла есть ключевое слово «firmware_revision», а в этой строке (и только в этой строке) я хочу заменить слово «тест» словом «производство». Так что я могу …

2
Манипулирование колонной
Я читал некоторые другие вопросы по манипулированию строками bash, но они кажутся специализированными приложениями. По сути, есть ли способ сделать ниже проще? вместо $ string='hello world'; string2="${string// /_}"; echo "${string2^^}" HELLO_WORLD что-то вроде $ echo 'hello world' | $"{-// /_}" | "${ -^^}" HELLO_WORLD Edit Я заинтересован в том, чтобы …

5
Использование подстановки параметров в массиве Bash
У меня есть file.txt, который мне нужно прочитать в массив Bash. Затем мне нужно удалить пробелы, двойные кавычки и все, кроме первой запятой в каждой записи . Вот как далеко я продвинулся: $ cat file.txt 10,this 2 0 , i s 30,"all" 40,I 50,n,e,e,d,2 60",s e,e" $ cat script.sh #!/bin/bash …

1
Выполнение команд с помощью сценариев ssh и shell с использованием переменных на удаленном компьютере
Я хотел бы выполнить команду и скрипт, расположенный на удаленной машине, со скриптом на локальной машине. Я знаю, что можно выполнять такие команды с помощью ssh, поэтому я сделал: #!/bin/bash ssh username@target 'cd locationOf/theScript/; ./myScript.sh' Работает отлично. Я хотел бы, чтобы этот скрипт был более общим, используя переменные. Теперь это: …

3
bash $ {VAR // поиск / замена} и странное поведение регулярных выражений
Я пытаюсь выполнить поиск и замену переменной, используя расширение параметра $ {VAR // search / replace}. У меня довольно длинная и злая PS1, которую я хочу отработать размером после расширения. Для этого я должен удалить кучу escape-последовательностей, которые я вставляю в него. Однако, пытаясь удалить все последовательности ANSI CSI SGR, …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.