Odpowiedzi:
Użyj „&&”, aby warunkowo uruchomić drugie polecenie, jeśli pierwsze się powiedzie.
sudo touch .htaccess && sudo chmod 766 .htaccess
scp admin@host.com:file1 && scp admin@host.com:file2 && scp admin@host.com:file3
i ustawiłem hasło do mojego klucza SSH, to ciągle pyta mnie o hasło, czy istnieje sposób, aby je połączyć?
Nie, nie jest.
Jedyne, co możesz zrobić, możesz połączyć te dwa polecenia w jednym sudo
:
sudo sh -c 'touch .htaccess && chmod 766 .htaccess'
Inne rozwiązanie (bez jednego połączenia zewnętrznego, ale także z dwoma poleceniami):
sudo sh -c 'umask 011 && touch .htaccess'
&&
zamiast ;
. Poza tym generalnie użyłbym dwóch sudo
poleceń, ponieważ uruchamianie całej powłoki z podwyższonymi uprawnieniami jest nadmierniejsze i bardziej ryzykowne, niż tylko dokładne programy, które muszą z nimi działać (w tym przypadku touch i chmod).
Średniki pozwolą ci zmieścić wiele poleceń w jednym wierszu w następujący sposób:
sudo touch .htaccess; sudo chmod 766 .htaccess
&&
zamiast ;
uruchamiania poleceń współzależnych, aby przestało działać w przypadku niepowodzenia polecenia.
rozdziel polecenia średnikiem. (;)
Przykład
echo firstname; echo lastname;
&&
jest ogólnie lepsze niż;
zatrzymywanie się, jeśli pierwsze polecenie się nie powiedzie, 2. ogólnie lepiej jest uruchamiać tylko potrzebny programsudo
, niż próbować połączyć je w jednosudo
wywołanie i uruchomić więcej kodu z podwyższonymi uprawnieniami niż to konieczne.