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.
Istnieją dwie składnie zastępowania poleceń: z nawiasami dolara i ze znakami wstecznymi. Działa top -p $(pidof init)i top -p `pidof init`daje tę samą moc wyjściową. Czy są to dwa sposoby robienia tego samego, czy też istnieją różnice?
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 …
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: …
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 …
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.
Wiem, że mogę rozwiązać ten problem na kilka sposobów, ale zastanawiam się, czy można to zrobić tylko przy użyciu wbudowanych bashów, a jeśli nie, jaki jest najbardziej efektywny sposób. Mam plik z zawartością typu AAA B C DDD FOO BAR przez co rozumiem tylko, że ma kilka linii, a każda …
Zgodnie z poniższym przykładem i moim ostatnim pytaniem In bash, gdzie zniknął znak końca nowej linii? Chcę wiedzieć, dlaczego tak się dzieje x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # Output is: 610a62 # The trailing newline from the 'echo' command # has been "deleted" by Command …
To pytanie zostało przeniesione z usterki serwera, ponieważ można na nie odpowiedzieć w systemie wymiany stosów Unix i Linux. Migrował 2 lata temu . Jedną z metod łatwej instalacji dla Dockera (na przykład) jest: curl -sSL https://get.docker.com/ | sh Jednak widziałem również niektóre, które wyglądają tak (na przykładzie Docker): sh …
Rozważ ten skrypt: #!/bin/bash function start { leafpad & echo $! } PID=$(start) echo "PID is $PID" Skrypt nie przechodzi przez nawias zamykający, dopóki proces leafpad nie zostanie zakończony, nawet jeśli jest to proces w tle. Dlaczego to? Czy można uruchomić proces w tle z funkcji?
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 …
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 …
for k in {0..49}; do a=$(($((2*$k))+1)); echo $a; done Cześć, potrzebuję uproszczonego wyrażenia dla trzeciego wiersza, być może takiego, który nie korzysta z podstawiania poleceń.
Najwyższy czas rozwiązać tę zagadkę, która niepokoi mnie od lat ... Spotykałem się z tym od czasu do czasu i myślałem, że to jest właściwa droga: $(comm "$(arg)") I pomyślałem, że moje zdanie jest mocno poparte doświadczeniem. Ale nie jestem już taki pewien. Shellcheck też nie może się zdecydować. Oba …
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.