2012-11-26 36 views
41

Tôi có một số lệnh trong tệp txt và tôi cần thực hiện tất cả các dòng lệnh theo dòng. Làm thế nào tôi có thể làm điều đó?Chạy lệnh bash từ tệp txt

+12

Làm thế nào về 'file.txt' bash? –

+1

có thể trùng lặp của [tập tin văn bản chạy ubuntu dưới dạng lệnh] (http://stackoverflow.com/questions/9825495/ubuntu-run-text-file-as-command) – mido

Trả lời

67

Chỉ cần làm bash file:

$ cat file 
date 
echo '12*12' | bc 

$ bash file 
Mon Nov 26 15:34:00 GMT 2012 
144 

Trong trường hợp bí danh chỉ cần chạy bash -i file

Không cần phải lo lắng về phần mở rộng tập tin hoặc quyền thực hiện.

+0

Thao tác này với các lệnh gốc nhưng tôi có một * bí danh * được lưu trữ trong tệp của tôi và cách này không hoạt động. Tôi đã nhận lỗi: "Không có lệnh 'mycm' tìm thấy ...". Có cách nào khác cho nó không? –

+1

@HankPhung 'bash -i file' –

13

Trong cửa sổ dòng lệnh chỉ cần gõ:

bash path/to/my/file.txt 

Và bạn sẽ nhận được mỗi dòng thực thi.

-4

chỉ cần thay đổi phần mở rộng của tập tin để sh

add/bin/bash lúc bắt đầu của tập tin

thay đổi sự cho phép của tập tin để thực thi

hơn chỉ cần chạy ./ lệnh filename.sh trong dòng lệnh. tất cả các lệnh trong file sẽ được thực hiện

+0

Nếu những người đưa ra câu hỏi không làm thế nào để thực hiện lệnh được lưu trữ trong một tập tin, tôi nghi ngờ ông sẽ có thể đổi tên hoặc thay đổi sự cho phép mà không cần bất kỳ lời giải thích thêm. –

+0

Nếu anh ta cần lệnh thực hiện, thì rõ ràng anh ta biết điều gì đó về commnadline (mặc dù tôi không ngờ anh ấy biết rất nhiều về shell). Tôi nghĩ rằng làm việc trong vỏ là một vẻ đẹp bao la và tốt đẹp. Tôi đã nói với anh ấy về những điều cơ bản về lập trình shell. Trong stackoverflow, một số mã hóa luôn được chấp nhận. Sau đó, nếu tôi nói anh ta về mã hóa trong vỏ, thì có gì sai? và tại sao là dwnvote? –

-3

Thay đổi phần mở rộng để sh và cho dòng đầu tiên #!/usr/bin/env bash và như ai đó nói chmod +x

+3

Thay đổi tiện ích mở rộng không quan trọng cũng như không có liên quan. –

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