Czy to możliwe, wykonaj chmod i zignoruj błąd z polecenia
Przykład (uwaga file.txt nie istnieje, aby pokazać przykład)
Kiedy piszę
chmod 777 file.txt
Na wyjściu pojawia się błąd
chmod: cannot access file.txt : no such file or directory
Dodam więc flagę-f do polecenia w następujący sposób: (plik.txt nie istnieje, aby pokazać wielkość liter)
chmod -f 777 file.txt
echo $?
1
Ale z przykładu chmod zwraca 1
Proszę poradzić, jak wymusić na komendzie chmod podanie kodu wyjścia 0 pomimo błędu
shell
shell-script
chmod
error-handling
Gilles „SO- przestań być zły”
źródło
źródło
2>/dev/null
i użyj ichset -e
w skryptach.Odpowiedzi:
Wykonałoby się to
:
, tzn. Polecenie zerowe, jeśli sięchmod
nie powiedzie. Ponieważ polecenie null nic nie robi, ale zawsze kończy się powodzeniem, zobaczysz kod wyjścia 0.źródło
chmod -f 777 file.txt || true
:
wydaje się równie czytelny.chmod -f 777 file.txt || true
Ponieważ jest to operacja OR, jeśli jedna z instrukcji zwraca true, wówczas zwracana wartość jest true. Powoduje to, że status wyjścia wynosi zero.
źródło
||
nie zostanie wykonana, jeśli odniesiechmod
sukces ... nie dlatego, że ma to znaczącą różnicę obliczeniową.Zawsze kochałem
źródło