Pytania otagowane jako shell

Powłoka jest interfejsem wiersza poleceń Uniksa. Możesz pisać polecenia w powłoce interaktywnie lub pisać skrypty automatyzujące zadania. Użyj tego znacznika do pytań dotyczących / bin / sh i najbardziej kompatybilnych powłok (ash, bash, ksh, zsh,…). Skrypty powłoki z błędami sprawdź je w http://shellcheck.net przed opublikowaniem tutaj.

1
Czy mogę ograniczyć użytkownika do korzystania ze specjalnych programów?
Czy można dodać użytkownika i ograniczyć mu uruchamianie specjalnych programów? Na przykład po zalogowaniu się ten użytkownik może otworzyć Firefoksa tylko w celu korzystania z Internetu i nie może uruchamiać innych programów. Na przykład w terminalu polecenia nie będą dostępne po usunięciu niektórych zmiennych środowiskowych, takich jak $ HOME. Ale …

3
shell: zachowaj końcowe znaki nowej linii ('\ n') w zastępstwie poleceń
Chcę być w stanie uchwycić dokładny wynik podstawienia polecenia, w tym końcowe znaki nowego wiersza . Zdaję sobie sprawę, że są one domyślnie usuwane, więc może być wymagana pewna manipulacja, aby je zachować, i chcę zachować oryginalny kod wyjścia . Na przykład, biorąc pod uwagę polecenie ze zmienną liczbą końcowych …
14 bash  shell 

3
Czy pułapka jest dziedziczona przez podpowłokę?
Próbowałem następującego skryptu: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo Dane wyjściowe powyższego skryptu były następujące: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file Jednak spodziewałem się, że pułapka zostanie również wywołana przy wyjściu z …
14 shell  trap  subshell 

3
Wytnij ciąg na ostatnim separatorze
Mam nazwę pliku a.b.c.txt, chcę, aby ten ciąg był podzielony jako string1=a.b.c string2=txt Zasadniczo chcę podzielić nazwę pliku i jego rozszerzenie. Użyłem, cutale dzieli się jak a,b,ci txt. Chcę wyciąć ciąg na ostatnim separatorze. Czy ktoś może pomóc?
14 shell  cut 


3
bash dodaje dodatkowe pojedyncze cytaty
Mam problem z wykonaniem skryptu. Podczas wykonywania go w trybie debugowania (bash -x) widzę, że bash dodaje dodatkowe cudzysłowy. Dlatego mój skrypt nie działa. Tutaj jest to w moim skrypcie: testvar="\"sudo /home/pi/shared/blink.sh 27 off\"" ssh -n -q -q -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 $1 ${testvar} To jest …
14 shell  ssh  quoting 



2
Kolejność plików wykonywalnych rozpoczęła się w bash
Jeśli wykonam testpolecenie w bash, test(ocenia wyrażenie warunkowe), uruchomione zostanie wbudowane narzędzie: $ type test test is a shell builtin $ type -a test test is a shell builtin test is /usr/local/bin/test test is /usr/bin/test $ Jednak, jak widać na type -a testpowyższym przykładzie, testw katalogu / usr / local …

3
echo lub print / dev / stdin / dev / stdout / dev / stderr
Chcę wydrukować wartość / dev / stdin, / dev / stdout i / dev / stderr. Oto mój prosty skrypt: #!/bin/bash echo your stdin is : $(</dev/stdin) echo your stdout is : $(</dev/stdout) echo your stderr is : $(</dev/stderr) używam następujących rur: [root@localhost home]# ls | ./myscript.sh [root@localhost home]# testerr …

4
Zachować kody wyjścia podczas wychwytywania SIGINT i podobnych?
Jeśli używam trapjak opisano np. Na http://linuxcommand.org/wss0160.php#trap, aby złapać ctrl-c (lub podobny) i oczyścić przed wyjściem, zmieniam zwrócony kod wyjścia. Teraz prawdopodobnie nie będzie to miało znaczenia w świecie rzeczywistym (np. Ponieważ kody wyjścia nie są przenośne, a ponadto nie zawsze są jednoznaczne, jak omówiono w Domyślnym kodzie wyjścia po …

2
Jaka jest struktura danych $ @ w powłoce?
Zwykle $@reprezentujemy wszystkie argumenty oprócz 0. Nie wiem jednak, jaka $@jest struktura danych . Dlaczego zachowuje się inaczej w $*przypadku podwójnego cytatu, czy ktoś mógłby mi wyjaśnić na poziomie tłumacza? Może być iterowany w pętli for, więc wygląda na tablicę. Jednak można go również w całości powtórzyć za pomocą prostej …
13 bash  shell 


2
Dlaczego SSH nie czeka na procesy w tle?
Dlaczego ssh -tnie czeka na zakończenie zadań w tle? Przykład: ssh user@example 'sleep 2 &' Działa to zgodnie z oczekiwaniami, ponieważ ssh powraca po 2 sekundach, podczas gdy ssh user@example -t 'sleep 2 &' nie czeka na sleepzakończenie i natychmiast wraca. Czy ktoś może wyjaśnić przyczynę tego? Czy istnieje sposób, …

6
Weryfikacja plików binarnych poleceń przed wykonaniem
Czy są jakieś metody sprawdzenia, co faktycznie wykonujesz ze skryptu bash? Powiedzieć skrypt bash dzwoni kilka poleceń (na przykład: tar, mail, scp, mysqldump) i są chętni, aby upewnić się, że tarjest rzeczywista, prawdziwa tar, która jest do ustalenia przez rootużytkownika będącego właścicielem pliku i katalog nadrzędny, a tylko jeden z …

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.