Pytania otagowane jako variable-substitution



2
Co oznacza $ {PATH: +: $ {PATH}}?
Niedawno zauważyłem w moim profilu cygwin, a dokładniej: /usr/local/bin:/usr/bin${PATH:+:${PATH}} Co to znaczy? Dlaczego nie jest tylko ŚCIEŻKA $? Czy to jest „jeśli $ PATH istnieje, to dodaj: $ PATH”? Moim celem jest zamiana kolejności i umieszczenie ścieżek cygwin za ścieżką systemu Windows. W przeszłości miałbym $PATH:/usr/local/bin:/usr/bin ale to mnie dezorientuje. …


7
Podwójne i potrójne podstawienie w bash i zsh
Kontynuacja części podstawowej tego pytania . W bashmogę użyć ${!FOO}do podwójnej zamiany, w zsh ${(P)FOO}. W obu działa stara szkoła (hack-y) eval \$$FOO. Najmądrzejszą i najbardziej logiczną rzeczą byłoby dla mnie ${${FOO}}, ${${${FOO}}}…zastąpienie podwójnym / potrójnym / n. Dlaczego to nie działa zgodnie z oczekiwaniami? Po drugie: co robi \w …

4
Usuń zmienną, aby użyć jej jako treści innego skryptu
To pytanie nie dotyczy tego, jak napisać poprawnie literał łańcucha znaków. Nie mogłem znaleźć żadnego powiązanego pytania, które nie dotyczyłoby ucieczki przed zmiennymi w celu bezpośredniego wykorzystania w skrypcie lub przez inne programy. Moim celem jest umożliwienie skryptowi generowania innych skryptów. Wynika to z faktu, że zadania w wygenerowanych skryptach …

2
Jak uniknąć spacji po zmiennej bash w ciągu?
Mam zmienną koloru. Używam go do ustawiania koloru łańcuchów, oceniając je wewnątrz łańcucha. Jednak muszę podać spację po nazwie (aby nazwa nie zawierała części tekstu). To czasami wygląda źle. Jak mogę uniknąć używania (drukowania) tego miejsca? Przykład (powiedzmy to Red=1i NC=2): echo -e "$Red Note: blabla$NC". Wynik: 1 Note: blabla2. …

3
Czy bash obsługuje odwołania referencyjne w rozszerzaniu parametrów?
Mam zmienną o nazwie descr, które mogą zawierać łańcuch Blah: -> r1-ae0-2 / [123], -> s7-Gi0-0-1:1-US / Fooitp Chcę uzyskać -> r1-ae0-2, -> s7-Gi0-0-1:1-USczęść z łańcucha. W tej chwili używam descr=$(grep -oP '\->\s*\S+' <<< "$descr"do tego. Czy jest na to lepszy sposób? Czy można to również zrobić z rozszerzaniem parametrów?


4
Czy można wydrukować zawartość zmiennej za pomocą skryptu powłoki? (odniesienia pośrednie)
Załóżmy, że zadeklarowałem następujące zmienne: $ var='$test' $ test="my string" Jeśli wydrukuję ich zawartość, zobaczę: $ echo $var $test $ echo $test my string Chciałbym znaleźć sposób na wydrukowanie zawartości treści $var(która jest zawartością $test). Próbowałem więc wykonać następujące czynności: $ echo $(echo $var) $test Ale tutaj wynik jest $testi …

4
$ {! FOO} i zsh
${!FOO}wykonuje podwójne podstawienie w bash, co oznacza, że ​​pobiera wartość (ciąg) FOO i używa jej jako nazwy zmiennej. zshnie obsługuje tej funkcji. Czy istnieje sposób, aby to działało tak samo w bashi zsh? Tło: Mam listę zmiennych środowiskowych, takich jak PATH MAIL EDITOR i chcą najpierw wydrukować nazwy zmiennych, a …

3
Czy „$ {PS1-}” jest poprawną składnią i czym różni się od zwykłego „$ PS1”?
Patrzę na skrypt, który ma: if [ "${PS1-}" ]; then To ostatnie -mnie trochę wkurza, ponieważ wydaje się, że nie jest to standardowa składnia Posix lub Bash. To jakaś tajemnicza składnia, która istnieje od zawsze, czy to literówka? Wszelkie odniesienia do standardów / dokumentów będą mile widziane. Normalnie kodowałbym to: …

1
Widzisz rozszerzenie zmiennych Bash do debugowania?
Czy są dostępne narzędzia / triki do rozwijania zmiennych, aby ułatwić czytanie kodu bash? Na przykład przekonwertowałby następujące: DIR=/var/tmp FILE=${DIR}/file SCRIPT_ROOT=/opt/root TOOL=${SCRIPT_ROOT}/tool.sh ${TOOL} ${FILE} do: DIR=/var/tmp FILE=/var/tmp/file SCRIPT_ROOT=/opt/root TOOL=/opt/root/tool.sh /opt/root/tool.sh /var/tmp/file Konwertuję kod BASH na Python i czytanie składni BASH jest piekielnie nużące.

3
Dereferencja połączona nazwa zmiennej
Mogę to zrobić, ale wymaga to utworzenia ciągu zmiennej, a następnie wyrejestrowania go. Czy jest jakiś sposób, aby skrócić to do prostszego stwierdzenia? #!/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 Próbowałem wiele rzeczy, jak …


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.