Chodzi o narzędzie "test" uniksowe, wywoływane również jako "[", lub jego wariant składni powłoki [[…]]. W przypadku pytań dotyczących testowania oprogramowania i konfiguracji użyj tagu „testing”.
Jestem trochę zdezorientowany, co te operatory robią inaczej, gdy są używane w bash (nawiasy, podwójne nawiasy, nawiasy i podwójne nawiasy). [[ , [ , ( , (( Widziałem, jak ludzie używają ich, jeśli takie stwierdzenia: if [[condition]] if [condition] if ((condition)) if (condition)
Jestem mylony z używaniem pojedynczych lub podwójnych nawiasów. Spójrz na ten kod: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi Działa idealnie, chociaż ciąg zawiera spację. Ale kiedy zmienię go na pojedynczy nawias: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi To mówi: ./script.sh: …
Muszę sprawdzić istnienie zmiennej w ifinstrukcji. Coś w efekcie: if [ -v $somevar ] then echo "Variable somevar exists!" else echo "Variable somevar does not exist!" Najbliższym pytaniem było to , które tak naprawdę nie odpowiada na moje pytanie.
Mogę sprawdzić, czy plik istnieje i jest dowiązaniem symbolicznym z -L for file in *; do if [[ -L "$file" ]]; then echo "$file is a symlink"; else echo "$file is not a symlink"; fi done a jeśli jest to katalog z opcją -d: for file in *; do if …
Zawsze jestem zaskoczony, że w folderze /binjest [program. Czy tak się nazywa, gdy robimy coś takiego if [ something ]:? Wywołując [program jawnie w powłoce, prosi o odpowiedni ], a kiedy dostarczam nawias zamykający, wydaje się, że nie robi nic, bez względu na to, co wstawię między nawiasy. Nie trzeba …
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 …
#!/bin/bash INT=-5 if [[ "$INT" =~ ^-?[0-9]+$ ]]; then echo "INT is an integer." else echo "INT is not an integer." >&2 exit 1 fi Co prowadzi wiodący ~w początkowym wyrażeniu regularnym?
Czy jest jakaś różnica między tymi dwoma. [[ $a == z* ]] i [ $a == z* ] Czy mogę podać przykład, w którym miałyby różne wyniki? Ponadto, czym [[ ]]różni się działanie [ ]?
Próbuję sprawdzić, czy dane wejściowe są liczbami całkowitymi i przekroczyłem je sto razy, ale nie widzę w tym błędu. Niestety nie działa, uruchamia instrukcję if dla wszystkich danych wejściowych (cyfr / liter) read scale if ! [[ "$scale" =~ "^[0-9]+$" ]] then echo "Sorry integers only" fi Bawiłem się cytatami, …
Próbuję napisać ifinstrukcję, aby sprawdzić, czy są jakieś pliki pasujące do określonego wzorca. Jeśli w katalogu znajduje się plik tekstowy, powinien on uruchomić dany skrypt. Mój kod obecnie: if [ -f /*.txt ]; then ./script fi Proszę podać kilka pomysłów; Chcę uruchomić skrypt tylko, jeśli jest .txtw katalogu.
Kiedyś byłem pewien, że cytowanie ciągów jest zawsze dobrą praktyką, aby uniknąć parsowania powłoki. Potem natrafiłem na to: $ x='(' $ [ "$x" = '1' -a "$y" = '1' ] bash: [: `)' expected, found 1 Próbując wyizolować problem, otrzymujesz ten sam błąd: $ [ '(' = '1' -a '1' …
Widziałem następującą technikę stosowaną wiele razy w wielu różnych powłokach, aby sprawdzić, czy zmienna jest pusta: if [ "x$1" = "x" ]; then # Variable is empty fi Czy są jakieś zalety korzystania z tego w porównaniu z bardziej kanonicznymi if [ -z "$1" ]? Czy może to być problem …
Mam katalog z dziennikami awarii i chciałbym użyć instrukcji warunkowej w skrypcie bash opartym na poleceniu find. Pliki dziennika są przechowywane w tym formacie: /var/log/crashes/app-2012-08-28.log /var/log/crashes/otherapp-2012-08-28.log Chcę, aby instrukcja if zwróciła wartość true tylko wtedy, gdy istnieje dziennik awarii dla konkretnej aplikacji, która została zmodyfikowana w ciągu ostatnich 5 minut. …
Zaczynam od bash i znalazłem następujące: if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi Do czytania skryptu i wykonywania go wiem, co robi, ale …
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.