Answers:
如果第一个命令成功,请使用“ &&”有条件地运行第二个命令。
sudo touch .htaccess和&sudo chmod 766 .htaccess
scp admin@host.com:file1 && scp admin@host.com:file2 && scp admin@host.com:file3
并且我已经在SSH密钥上设置了密码,它一直在问我密码,有没有办法组合密码呢?
不它不是。
您唯一可以做的是,可以将这两个命令合并在一个命令中sudo
:
sudo sh -c 'touch .htaccess && chmod 766 .htaccess'
另一种解决方案(仅一个外部调用,但也包含两个命令):
sudo sh -c 'umask 011 && touch .htaccess'
&&
代替;
。另外,一般来说,我只使用两个sudo
命令,因为以提升的特权而不是需要与它们一起运行的确切程序(在这种情况下,为touch和chmod)运行整个shell会显得过于杀伤和冒险。
用分号分隔命令。(;)
例
echo firstname; echo lastname;
&&
之所以喜欢这种解决方案,有两个原因:1. 通常比;
在第一个命令失败时停止运行更好; 2.仅使用来运行所需的特定程序sudo
,而不是尝试将它们组合为单个sudo
调用并运行,通常更好具有更高特权的更多代码超出了必要。