Запитання з тегом «variable-substitution»



2
Що означає $ {PATH: +: $ {PATH}}?
Нещодавно я помітив наступне у своєму профілі cygwin, точніше: /usr/local/bin:/usr/bin${PATH:+:${PATH}} Що це означає? Чому це не просто $ PATH? Це "якщо $ PATH існує, тоді додамо: $ PATH"? Моя мета - поміняти місцями замовлення та розмістити доріжки cygwin за стежкою Windows. У минулому я мав би $PATH:/usr/local/bin:/usr/bin але це мене …

4
Чому моя змінна локальна в одному циклі "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 # …

7
Подвійна і потрійна заміна в bash і zsh
Слідкуйте за основною частиною цього питання . У bashя можу використовувати ${!FOO}для подвійної заміни, в zsh ${(P)FOO}. В обох працює стара школа (хак-у) eval \$$FOO. Отже, найрозумнішим і найбільш логічним для мене було б ${${FOO}}, ${${${FOO}}}…подвійне / потрійне / п заміщення. Чому це не працює, як очікувалося? Друге: Що робить …

4
Уникніть змінної для використання як вмісту іншого сценарію
Це запитання не стосується того, як записати правильно вийшов рядковий літерал. Я не зміг знайти жодного пов'язаного питання, яке стосується того, як уникнути змінних для прямого споживання в сценарії чи іншими програмами. Моя мета - включити сценарій для генерації інших сценаріїв. Це відбувається тому, що завдання в генерованих сценаріях будуть …

2
Як уникнути місця після змінної bash у рядку?
У мене є змінна для кольору. Я використовую його для встановлення кольору рядків, оцінюючи його всередині рядка. Однак мені потрібно вказати пробіл після імені (щоб ім’я не містило частини тексту). Це часом виглядає погано. Як я можу уникнути використання (друку) цього простору? Приклад (Скажімо, що Red=1і NC=2): echo -e "$Red …

3
Чи підтримує bash зворотні посилання при розширенні параметрів?
У мене є ім'я змінної , descrяка може містити рядок Blah: -> r1-ae0-2 / [123], -> s7-Gi0-0-1:1-US / Fooі т.д. Я хочу , щоб отримати -> r1-ae0-2, -> s7-Gi0-0-1:1-USчастина з рядка. На даний момент я використовую descr=$(grep -oP '\->\s*\S+' <<< "$descr"для цього. Чи є кращий спосіб зробити це? Чи можливо …


4
Чи можливо надрукувати вміст змісту змінної за допомогою сценарію оболонки? (непряме посилання)
Припустимо, я оголосив такі змінні: $ var='$test' $ test="my string" Якщо я друкую їхній вміст, я бачу таке: $ echo $var $test $ echo $test my string Я хотів би знайти спосіб друкувати зміст контенту $var(який є вмістом $test). Тому я спробував зробити наступне: $ echo $(echo $var) $test Але …

4
$ {! FOO} і zsh
${!FOO}виконує подвійну підстановку у bash, тобто означає, що вона приймає (рядкове) значення FOO і використовує його як ім'я змінної. zshне підтримує цю функцію. Чи є спосіб , щоб зробити цю роботу в тому ж самому bashі zsh? Фон: У мене є список змінних середовища, наприклад PATH MAIL EDITOR і потрібно …

3
Чи дійсний синтаксис "$ {PS1-}" і чим він відрізняється від простого "$ PS1"?
Я дивлюся на сценарій, який містить: if [ "${PS1-}" ]; then Цей трейлінг -помиляється на мене трохи тому, що він не здається стандартним синтаксисом Посікса чи Баша. Це якийсь таємничий синтаксис, який існує назавжди, чи це друкарська помилка? Будь-які посилання на стандарти / документи будуть вдячні. Зазвичай я б це …

1
Бачите розширення змінних 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 SCRIPT_ROOT=/opt/root TOOL=/opt/root/tool.sh /opt/root/tool.sh /var/tmp/file Я перетворюю BASH-код на Python і читаю синтаксис BASH - це дуже нудно.

3
Ім'я змінної зв'язаної дереференції
Я можу це зробити, але для цього потрібно зробити рядок змінної, а потім перенаправити її. Чи є якийсь спосіб скоротити це до більш простого твердження? #!/bin/bash FRUITS="BANANA APPLE ORANGE" BANANA_COLOUR="Yellow" APPLE_COLOUR="Green or Red" ORANGE_COLOUR="Blue" for fruit in $( echo $FRUITS ); do fruit_colour="${fruit}_COLOUR" echo $fruit is ${!fruit_colour} done Я спробував …


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.