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.

2
Jak interpretowane są nawiasy w wierszu poleceń?
Czytając o tym, jak skonfigurować grub, natknąłem się na artykuł, w którym twierdziłem, że muszę użyć jednej z następujących dwóch składni: echo \(hd0,0\) >> /boot/grub/grub.conf lub echo '(hd0,0)' >> /boot/grub/grub.conf ponieważ w wierszu poleceń nawiasy są interpretowane w specjalny sposób. Co jest specjalnego w nawiasach? Jak oni są interpretowani?
45 bash  shell  quoting 

5
mv: Przenieś plik tylko wtedy, gdy miejsce docelowe nie istnieje
Czy mogę używać mv file1 file2w taki sposób, że porusza się tylko file1na file2razie file2nie istnieje? próbowałem yes n | mv -i file1 file2 (pozwala to mvzapytać, czy plik2 powinien zostać zastąpiony i automatycznie odpowiedzieć nie), ale oprócz nadużywania -inie daje mi również ładnych kodów błędów (zawsze 141 zamiast 0, …
44 shell  files  mv 

7
Czy test lub [lub [[jest bardziej przenośny zarówno pomiędzy powłokami bash, jak i między innymi powłokami?
Widzę, że mogę $ [ -w /home/durrantm ] && echo "writable" writable lub $ test -w /home/durrantm && echo "writable" writable lub $ [[ -w /home/durrantm ]] && echo "writable" writable Lubię używać trzeciej składni. Czy są one równoważne pod każdym względem i dla wszystkich przypadków negatywnych i skrajnych? Czy …


10
ustaw mój tryb wyświetlania zsh w trybie vi
Używam bindkey -v(dla bash-erów set -o vimyślę, że to działa również w zsh) lub vi (m). ale denerwuje mnie to, że nie mam żadnej wizualnej wskazówki, która powiedziałaby mi, czy jestem w trybie wstawiania, czy w trybie poleceń. Czy ktoś wie, jak mogę sprawić, by mój monit wyświetlał ten tryb?
44 shell  prompt  zsh 



1
znajdź pliki bez rozszerzenia
Powiedzmy, że mam: foo.txt bar baz.ooo Jeśli ls -1 !(*.*)użyję, dostanę tylko barna wyjściu. Świetnie, teraz chcę mieć takie same wyniki z find - niektóre find -regex, które wykonają pracę. UWAGA: find -name !(*.*)nie jest odpowiedzią, ponieważ !(*.*)wciąż jest globem Basha, którego NIE mogę użyć.
43 bash  shell  find  wildcards 

4
Pokaż PATH w sposób czytelny dla człowieka
Chcę pokazać moją zmienną środowiskową PATH w sposób bardziej czytelny dla człowieka. $ echo $PATH /Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/bin:/usr/local/git/bin:/Users/arturo/.gvm/groovy/current/bin:/Users/arturo/.gvm/grails/current/bin:/Users/arturo/.gvm/griffon/current/bin:/Users/arturo/.gvm/gradle/current/bin:/Users/arturo/.gvm/lazybones/current/bin:/Users/arturo/.gvm/vertx/current/bin:/Users/arturo/.gvm/bin:/Users/arturo/.gvm/ext:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin Myślę o czymś takim: $ echo $PATH | some cut and awk magic /Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin /Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin /Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin /Users/arturo/.rvm/bin ...


4
Jak wydrukować „$” w dokumencie tutaj
Jak mogę powtórzyć „$” w dokumencie doc w bash? Na przykład chcę mieć plik z zawartością na zdalnym serwerze, takim jak $ABC=home_dir. $ ssh hostname sudo -s <<EOF echo "$ABC=home_dir" > file EOF Ale byłoby to traktowane jako zmienna. Jak mogę wydrukować literał $?
42 bash  shell  quoting 

2
Jak działa plik `cat <>?
cat &lt; filewypisuje zawartość pliku na standardowe wyjście. cat &gt; fileodczytuje stdin aż do wykrycia Ctrl+ Di zapisania tekstu wejściowego do pliku . cat &lt;&gt; file, przynajmniej w mojej wersji Bash, drukuje zawartość pliku szczęśliwie (bez błędów), ale nie modyfikuje pliku ani nie aktualizuje znacznika czasu modyfikacji. W jaki sposób …

7
Dlaczego [AZ] dopasowuje małe litery w bash?
We wszystkich znanych mi powłokach rm [A-Z]*usuwa wszystkie pliki rozpoczynające się na wielką literę, ale w przypadku bash powoduje to usunięcie wszystkich plików rozpoczynających się na literę. Ponieważ ten problem występuje w systemach Linux i Solaris w wersjach bash-3 i bash-4, nie może to być błąd spowodowany błędnym dopasowaniem wzorca …
42 bash  shell  wildcards  locale 


1
Czy istnieje standardowe polecenie, które zawsze kończy się niepowodzeniem?
Chcę przetestować skrypt za pomocą polecenia, które się nie powiedzie. Mógłbym użyć istniejącego polecenia ze złymi argumentami. Mógłbym również napisać prosty skrypt, który natychmiast kończy działanie z błędem. Oba są łatwe do zrobienia i działają dla mnie, ale jeśli istnieje standardowe polecenie do tego celu, chciałbym go użyć zamiast tego.

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.