Réponses:
Utilisez '&&' pour exécuter conditionnellement la deuxième commande si la première réussit.
sudo touch .htaccess && sudo chmod 766 .htaccess
scp admin@host.com:file1 && scp admin@host.com:file2 && scp admin@host.com:file3
et que j'ai défini un mot de passe sur ma clé SSH, il me demande tout le temps un mot de passe, existe-t-il un moyen de le combiner ???
Non, ça ne l'est pas.
La seule chose que vous pouvez faire, vous pouvez combiner ces deux commandes en une seule sudo
:
sudo sh -c 'touch .htaccess && chmod 766 .htaccess'
Autre solution (sans un seul appel externe, mais aussi avec deux commandes):
sudo sh -c 'umask 011 && touch .htaccess'
&&
au lieu de ;
, cependant. De plus, en général, j'utiliserais simplement deux sudo
commandes, car il est exagéré et plus risqué d'exécuter un shell entier avec des privilèges élevés, plutôt que juste les programmes exacts qui doivent s'exécuter avec eux (dans ce cas, touch et chmod).
Les points-virgules vous permettent de placer plusieurs commandes sur une seule ligne comme ceci:
sudo touch .htaccess; sudo chmod 766 .htaccess
&&
plutôt que d' ;
exécuter des commandes interdépendantes afin qu'elle s'arrête si une commande échoue.
séparez les commandes par un point-virgule. (;)
Exemple
echo firstname; echo lastname;
&&
est généralement meilleure que;
si elle s'arrête si la première commande échoue, 2. il est généralement préférable d'exécuter uniquement le programme spécifique nécessairesudo
, plutôt que d'essayer de les combiner en une seulesudo
invocation et exécution plus de code avec des privilèges élevés que nécessaire.