Điểm:-3

có nên sử dụng "sudo bash -c" thay vì "sudo" mãi mãi không?

lá cờ kz
tmp

Đầu tiên, chúng ta chỉ nói về hệ điều hành Debian/Ubuntu.

Thứ hai, chúng ta đang nói về một người dùng không phải root chỉ có đặc quyền sudo.



Vì vậy, câu hỏi là,

Có dịp nào mà không dùng được không Sudo bash -c 'lệnh' nhưng chỉ lệnh sudo ?

nó là một ý tưởng tốt để sử dụng sudo bash -c thay vì sudo mãi mãi?

lá cờ hr
Tôi đang bỏ phiếu để đóng câu hỏi này vì nó đã được hỏi trên nhiều trang web: [có nên sử dụng âsudo bash -câ thay vì âsudoâ mãi mãi không?](https:/ /unix.stackexchange.com/questions/666213/is-it-a-good-idea-to-use-sudo-bash-c-instead-of-sudo-forever)
tmp avatar
lá cờ kz
tmp
@steeldriver Tôi xin lỗi về điều đó, tôi mới đến đây, tôi rất bối rối không biết câu hỏi của mình thuộc về trang web nào, thật khó để đưa ra lựa chọn đúng đắn cho tôi. nhưng có vẻ như tôi vừa nhận được "câu trả lời".
guiverc avatar
lá cờ cn
Cũng lưu ý rằng đây là một trang web dành cho Ubuntu, dành cho Ubuntu và các hương vị *chính thức* của Ubuntu (ví dụ: https://ubuntu.com/download/flavours) vì vậy việc bạn sử dụng Debian đã khiến bạn không thích trang web này. Nhiều người trong chúng ta có thể *yêu thích* và *sử dụng* Debian, nhưng bạn nên duy trì các nguyên tắc của trang web (bạn có thể truy cập trang web này bằng SSO/đăng nhập Ubuntu của mình, nhưng đó là trang web Stack Exchange, vì vậy không nên đặt câu hỏi trên các trang web SE khác )
Điểm:1
lá cờ cw

Nếu bạn không sử dụng đánh đập, sau đó bash -c chạy lệnh với đánh đập, và lệnh sudo chạy lệnh với trình bao của bạn.

Nếu bạn đang sử dụng đánh đập, sau đó bash -c tạo ra một cú đánh khác để bạn chạy tập lệnh của mình, điều này thực sự có thể gây ra sự cố liên quan đến các biến.

Hãy thử ví dụ này

S=2
tiếng vang $S
tiếng vang -c tiếng vang $S

Bạn sẽ nhận được đầu ra khác nhau!

tmp avatar
lá cờ kz
tmp
Cảm ơn vì ví dụ hay của bạn, chỉ làm tôi nhớ đến câu trích dẫn```"```, chúng tôi thường sử dụng ```bash -c "echo $S" ``` với câu trích dẫn và tôi thực sự nhận được kết quả tương tự trong trường hợp này cũng.
Shu Shang avatar
lá cờ cw
Chà, việc không sử dụng phiên bản bash -c sẽ không gây hại gì cho bạn và nó sẽ không khiến bạn gặp khó khăn khi trích dẫn, điều mà nếu bạn vô tình quên, có thể gây ra thảm họa.
bac0n avatar
lá cờ cn
@ShuShang không chắc bạn đang cố gắng mô tả điều gì, `-c` lấy một 'chuỗi lệnh' và bất kỳ đối số nào sau đây sẽ được chỉ định làm tham số vị trí bắt đầu từ `$0`, trong trường hợp này, `$S` sẽ trở thành `$0 ` được sử dụng làm tên của tập lệnh, ví dụ: `bash -c nonvisit $S` sẽ cung cấp cho bạn `2: dòng 1: không tồn tại: không tìm thấy lệnh`.
bac0n avatar
lá cờ cn
@tmp trong hầu hết các trường hợp, bạn nên sử dụng dấu nháy đơn hoặc `$S` sẽ được mở rộng bởi trình bao hiện tại trước khi `bash -c` diễn giải chuỗi lệnh. Cấu trúc chung có thể giống như sau: `bash -c 'echo "$@"' my-bash 1 2 3 4`.
tmp avatar
lá cờ kz
tmp
@bac0n Nhưng tôi vẫn không biết tại sao, trong ví dụ trên, chỉ có bash -c " echo $S " hoặc bash -c " echo ' $S ' " hoặc bash -c " echo " $S " " là được, nhận được kết quả đầu ra tương tự như echo $S = 2 , đó sẽ là một câu hỏi khác của tôi, chính xác các trích dẫn của bash -c để làm gì? Họ có thực hiện trực tiếp mệnh lệnh bên trong họ không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.