2012-03-22 30 views
21

Nếu tôi có tệp văn bản có lệnh riêng biệt trên mỗi dòng, làm cách nào để làm cho thiết bị đầu cuối chạy mỗi dòng dưới dạng lệnh? Tôi chỉ không muốn phải sao chép và dán 1 dòng tại một thời điểm. Nó không phải là một tệp văn bản ... Nó có thể là bất kỳ loại tệp nào sẽ hoạt động.Tệp văn bản chạy ubuntu như lệnh

dụ .txt

sudo command 1 
sudo command 2 
sudo command 3 

Trả lời

38

bạn có thể làm cho một kịch bản shell với những lệnh, và sau đó chmod +x <scriptname.sh>, và sau đó chỉ cần chạy nó bằng cách

./scriptname.sh 

của nó rất đơn giản để viết một kịch bản bash

Tệp mockup sh:

#!/bin/sh 
sudo command1 
sudo command2 
. 
. 
. 
sudo commandn 
+0

bạn có thể viết một tệp mockup .sh với ví dụ của tôi – Blainer

+0

Trong phần mở rộng của linux không bắt buộc (bạn thậm chí có thể tạo tệp không có phần mở rộng). Nó hoạt động ngay cả khi phần mở rộng là .txt – Saphrosit

+0

Có, nhưng bạn nên có "#!/Bin/sh" ở đầu tệp của bạn để hạt nhân biết rằng nó là một tập lệnh shell – Chaos

43

bạn cũng có thể chỉ cần chạy nó với một vỏ, ví dụ:

bash example.txt 

sh example.txt 
+6

Chỉ cần phím tắt tôi đang tìm kiếm. Cảm ơn. – saccharine

+0

cũng để gỡ lỗi nó, bạn có thể sử dụng bash -x example.txt –

+0

đây là lý do tại sao tôi cài đặt Ubuntu. Tôi biết có một cách đơn giản hơn. – MJoraid

6

Bạn có thể sử dụng một cái gì đó như thế này:

for i in `cat foo.txt` 
do 
    sudo $i 
done 

Mặc dù nếu các lệnh có đối số (ví dụ: có khoảng trắng trong các dòng) bạn có thể phải khỉ xung quanh với một chút để bảo vệ whitepace sao cho toàn bộ chuỗi được nhìn thấy bởi sudo như một lệnh. Nhưng nó cung cấp cho bạn một ý tưởng về cách bắt đầu.

Các vấn đề liên quan