Pytania otagowane jako command-substitution

Pytania dotyczące podstawiania poleceń powłoki (takich jak $ (polecenie) lub `polecenie`), ich mechanizmu, poprawnej składni itp. Nie należy ich mylić z aliasami.


3
Cytowanie w $ (podstawianie poleceń) w Bash
W moim środowisku Bash używam zmiennych zawierających spacje i używam tych zmiennych w ramach zastępowania poleceń. Niestety nie mogę znaleźć odpowiedzi na SE. Jaki jest prawidłowy sposób cytowania moich zmiennych? Jak mam to zrobić, jeśli są zagnieżdżone? DIRNAME=$(dirname "$FILE") lub czy mam wycenę poza zamianą? DIRNAME="$(dirname $FILE)" lub obydwa? DIRNAME="$(dirname …

6
Jak mogę wykonać `date` wewnątrz zadania karty cron?
Chcę utworzyć plik dziennika dla skryptu cron, który ma bieżącą godzinę w nazwie pliku dziennika. Oto polecenie, którego próbowałem użyć: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log Niestety pojawia się ten komunikat, gdy działa: /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: …

7
Przekaż wynik poprzedniego polecenia do następnego jako argument
Mam polecenie, które wyprowadza dane do stdout ( command1 -p=aaa -v=bbb -i=4). Linia wyjściowa może mieć następującą wartość: rate (10%) - name: value - 10Kbps Chcę grepować ten wynik, aby zapisać tę „szybkość” (myślę, że fajka będzie tu przydatna). Na koniec chciałbym, aby ta szybkość była wartością parametru drugiego polecenia …


3
Zrozumienie backtick (`)
Wypróbowuję polecenie $ b=5; echo `$b`; -bash: 5: command not found ale nie drukuje 5 tak, jak powinno. Czego tu brakuje? Co oznacza `(backquote / backtick) w poleceniach? zdaje się mówić, że `ocenia polecenia wewnątrz i zamienia je na dane wyjściowe.





1
Czego wymaga POSIX dla cytowanych tutaj dokumentów w ramach zastępowania poleceń?
W tym pytaniu ktoś zgłasza problem z użyciem dokumentu tutaj z cytowanym słowem ogranicznika w $(...)podstawianiu poleceń , gdzie odwrotny ukośnik \na końcu linii w dokumencie powoduje kontynuację linii łączącej nową linię , podczas gdy ten sam dokument tutaj podstawienie polecenia poza operacją działa zgodnie z oczekiwaniami . Oto uproszczony …

2
zagnieżdżone podwójne cudzysłowy w wysoko ocenianym jednym wierszu
StackOverflow odpowiedź z> 3.5K głosów dysponuje ten jeden-liner przypisywania do DIRkatalogu bieżącego skryptu bash: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Zaskakują mnie zagnieżdżone podwójne cudzysłowy. O ile wiem, następujące fragmenty są cytowane: "$( cd " "${BASH_SOURCE[0]}" " && pwd )" ... i wszystko inne po prawej stronie …



3
Czy jest jakiś powód, aby używać lub uczyć zastępowania „…” nowym opracowaniem?
Rozumiem, że bardziej nowoczesna $(...)składnia zastępowania poleceń jest lepsza niż `składnia oparta na starej , ze względu na łatwiejsze i mniej podatne na błędy zagnieżdżanie i unikanie składni. Ponadto wydaje się, że większość /bin/shstylów w nowoczesnych powłokach obsługuje $(…): grzmotnąć ash (a zatem BusyBox, więc najbardziej osadzony Linux) dziarskość FreeBSD …

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.