Antworten:
Verwenden Sie '&&', um den zweiten Befehl bedingt auszuführen, wenn der erste erfolgreich ist.
sudo touch .htaccess && sudo chmod 766 .htaccess
scp admin@host.com:file1 && scp admin@host.com:file2 && scp admin@host.com:file3
ich, wenn ich ein Passwort für meinen SSH-Schlüssel festgelegt habe und mich ständig nach dem Passwort fragt? Gibt es eine Möglichkeit, es zu kombinieren?
Nein ist es nicht.
Sie können diese beiden Befehle nur in einem kombinieren sudo
:
sudo sh -c 'touch .htaccess && chmod 766 .htaccess'
Eine andere Lösung (ohne einen externen Anruf, aber auch mit zwei Befehlen):
sudo sh -c 'umask 011 && touch .htaccess'
&&
stattdessen zu verwenden ;
. Außerdem würde ich im Allgemeinen nur zwei sudo
Befehle verwenden, da es übertrieben und riskanter ist, eine ganze Shell mit erhöhten Berechtigungen auszuführen, anstatt nur die genauen Programme, die mit ihnen ausgeführt werden müssen (in diesem Fall touch und chmod).
Mit Semikolons können Sie mehrere Befehle in eine einzelne Zeile einfügen:
sudo touch .htaccess; sudo chmod 766 .htaccess
&&
anstatt ;
wenn voneinander abhängige Befehle ausführen , so dass er stoppt , wenn ein Befehl fehlschlägt.
Trennen Sie die Befehle mit einem Semikolon. (;)
Beispiel
echo firstname; echo lastname;
&&
ist im Allgemeinen besser als;
anzuhalten, wenn der erste Befehl fehlschlägt, 2. ist es im Allgemeinen besser, nur das spezifische Programm auszuführen, das benötigt wirdsudo
, anstatt zu versuchen, sie in einem einzigensudo
Aufruf zu kombinieren und auszuführen mehr Code mit erhöhten Rechten als nötig.