Câu trả lời:
Sử dụng '&&' để chạy lệnh thứ hai một cách có điều kiện nếu lệnh đầu tiên thành công.
sudo touch .htaccess && sudo chmod 766 .htaccess
scp admin@host.com:file1 && scp admin@host.com:file2 && scp admin@host.com:file3
và tôi đã đặt mật khẩu trên khóa SSH của mình, nó đang hỏi tôi mật khẩu mọi lúc, có cách nào để kết hợp nó không ???
Không có nó không phải là.
Điều duy nhất bạn có thể thực hiện, bạn có thể kết hợp hai lệnh này trong một sudo
:
sudo sh -c 'touch .htaccess && chmod 766 .htaccess'
Một giải pháp khác (không thực hiện một cuộc gọi bên ngoài, nhưng cũng có hai lệnh):
sudo sh -c 'umask 011 && touch .htaccess'
&&
thay vì ;
. Ngoài ra, nói chung tôi sẽ chỉ sử dụng hai sudo
lệnh, vì sẽ quá nguy hiểm và nguy hiểm hơn khi chạy toàn bộ hệ vỏ với các đặc quyền nâng cao, thay vì chỉ các chương trình chính xác cần chạy với chúng (trong trường hợp này là chạm và chmod).
Dấu chấm phẩy sẽ cho phép bạn khớp nhiều lệnh trên một dòng như thế này:
sudo touch .htaccess; sudo chmod 766 .htaccess
&&
thay vì ;
khi chạy các lệnh phụ thuộc lẫn nhau để nó dừng lại nếu lệnh bị lỗi.
tách các lệnh bằng dấu chấm phẩy. (;)
Thí dụ
echo firstname; echo lastname;
&&
nói chung là tốt hơn;
để nó dừng lại nếu lệnh đầu tiên thất bại, 2. nói chung tốt hơn là chỉ chạy chương trình cụ thể cần thiếtsudo
, thay vì cố gắng kết hợp chúng thành một lệnhsudo
gọi và chạy duy nhất nhiều mã hơn với các đặc quyền nâng cao hơn mức cần thiết.