Lệnh one liner sẽ dài hơn nhưng đây là phần gây ra lỗi.
for user in natural1 ; do
cat <<EOT >> /home/$user/public_html/.htaccess
<FilesMatch "wp-login.php">
AuthType Basic
AuthName "Secure Area"
AuthUserFile "/home/$user/.htaccesspasswd"
require valid-user
</FilesMatch>
EOT
; done
-bash: syntax error near unexpected token `;'
;
như một breakbreak. Vì vậy, bạn có thể sử dụng dấu chấm phẩy giữa Natural1 và do, hoặc đặt làm trên dòng tiếp theo. Cả hai sẽ là cú pháp hợp lệ. Rất nhiều lập trình viên sử dụng dấu chấm phẩy vì họ thấy nó gọn gàng hơn để chứa khai báo vòng lặp thành một dòng duy nhất. Bởi vì điều này không bao giờ có ý nghĩa để bắt đầu một dòng với ;
bash mà tôi có thể nghĩ đến.
;
trong; done
. bash không phải là C. bash là cáu kỉnh nếu bạn thêm không cần thiết; nơi bạn đã có dòng mới