Câu hỏi Làm cách nào để chạy các tệp .sh?


Bất cứ khi nào tôi mở một tập tin .sh, nó sẽ mở nó trong gedit thay vì thiết bị đầu cuối. Tôi không thể tìm thấy bất kỳ tùy chọn nào tương tự Click chuột phải → Mở với → Ứng dụng khác ... → Thiết bị đầu cuối.

Làm cách nào để mở tệp này trong thiết bị đầu cuối?


247
2018-05-01 02:39


gốc


Tập lệnh đó có nhằm mục đích thiết lập các biến env để sử dụng thêm không? - Rob
Bạn không nên sử dụng tiện ích trên tập lệnh. Tại một số thời điểm trong tương lai, bạn có thể thấy rằng một ngôn ngữ khác phù hợp hơn để thực hiện tác vụ mà tập lệnh hiện tại của bạn đang thực hiện. Và sau đó bạn có một vấn đề. Bạn giữ tên cũ, với một phần mở rộng hoàn toàn gây hiểu lầm, hoặc bạn đổi tên nó, có thể phải chỉnh sửa rất nhiều nơi mà kịch bản của bạn được sử dụng? - geirha
Bạn không cần phần mở rộng tập tin. Thật tuyệt khi có nhưng không cần thiết. Hệ điều hành không xem xét phần mở rộng của tệp. Nó nhìn vào dữ liệu - ActionParsnip
Meh, nếu bạn viết lại foo.sh trong ruby, bạn luôn có thể sử dụng tệp .sh để khởi chạy ruby foo.rb - glenn jackman
Trong Dolphin bạn có thể nhấn F4 và một giao diện điều khiển mở ra - Motte001


Các câu trả lời:


Cấp quyền thực thi cho tập lệnh của bạn:

chmod +x /path/to/yourscript.sh

Và để chạy tập lệnh của bạn:

/path/to/yourscript.sh

. đề cập đến thư mục hiện tại: if yourscript.sh nằm trong thư mục hiện tại, bạn có thể đơn giản hóa việc này thành:

./yourscript.sh

379
2018-05-01 03:18



Chỉ +1 câu trả lời để hiển thị thêm quyền thực thi theo cách duy nhất của thiết bị đầu cuối. - Hailwood
Nếu bạn làm bash /path/to/yourscript.sh sau đó bạn không cần chmod +x - Aleksandr Levchuk
Trên thực tế, bạn có thể sử dụng . /path/to/yourscript.sh nếu tập lệnh phải thiết lập một số biến môi trường. - Rob
Không ai đề cập đến truyền thống: ./path/to/yourscript.sh (không có không gian sau .)? Tôi thấy rằng một trong những đơn giản nhất và dễ sử dụng nhất ... Nhưng dù sao thì, đây là giải pháp thay thế của tôi nên làm gần giống như ./ sẽ, mặc dù tôi không thấy lý do tại sao bạn sẽ không sử dụng ./: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME) ... chỉnh sửa FILENAME theo ý thích của bạn. Cũng lưu ý rằng sh sẽ được sử dụng nếu không có thay thế. - MiJyn


Bạn cần đánh dấu các kịch bản lệnh shell là có thể thực thi để chạy chúng từ trình quản lý tệp:

  1. Nhấp chuột phải vào .sh tập tin và chọn Tính chất:

    enter image description here

  2. bên trong Quyền tab, kiểm tra Cho phép thực thi tệp dưới dạng chương trình:

    enter image description here

  3. Đóng Tính chất cửa sổ và nhấp đúp vào tệp. Một hộp thoại sẽ bật lên cho bạn tùy chọn để chạy tập lệnh trong thiết bị đầu cuối:

    enter image description here


72
2018-05-01 03:02



Ảnh chụp màn hình tốt - gd1
Điều này không hoạt động trong Ubuntu 13.04. Vẫn mở trong gedit, không bao giờ yêu cầu tôi thực thi. Chỉnh sửa: Nvm, imjustmatthew câu trả lời này. - mpen
Trước khi sử dụng, chúng ta cần phải thực hiện quyền cho phép thực thi bằng cách sử dụng chmod. chmod + x filename.sh hoặc chmod 755 filename.sh - Arvind Rawat
Tôi không có cửa sổ bật lên! IDE được mở ngay lập tức, không phải là một popup - Green
@ DanielMöller, đây là câu trả lời cho câu hỏi của bạn. askubuntu.com/questions/38661/how-do-i-run-sh-files/… - Akhilesh Dhar Dubey


Điều kiện tiên quyết

Trước khi bạn có thể chạy tệp .sh, bạn cần làm cho tệp đó có thể thực thi được:

  1. Nhấp chuột phải vào tệp
  2. Lựa chọn Tính chất
  3. Lựa chọn Quyền
  4. Lựa chọn Cho phép thực thi tệp dưới dạng chương trình

Cảnh báo

Đảm bảo bạn tin tưởng nguồn nơi bạn đã nhận tệp. Nó có thể là một vi rút.

Cách rất đơn giản

  1. Nhấp đúp vào tệp
  2. Nhấp vào chạy trong thiết bị đầu cuối

Điều này có vấn đề. Thiết bị đầu cuối sẽ đóng ngay lập tức và bạn sẽ không thể nhìn thấy đầu ra.

Cách đơn giản

  1. Mở ứng dụng -> Phụ kiện -> Thiết bị đầu cuối
  2. Kéo và thả tập tin .sh vào terminal và nhấn Enter

Cách các chuyên gia làm điều đó

  1. Mở ứng dụng -> Phụ kiện -> Thiết bị đầu cuối
  2. Tìm tệp .sh ở đâu

    • Sử dụng ls và cd lệnh
    • ls sẽ liệt kê các tệp và thư mục trong thư mục hiện tại. Hãy thử: gõ "ls" và nhấn Enter.
    • Khi bạn thấy thư mục mà bạn muốn truy cập, hãy chạy cd, theo sau là dấu cách, theo sau là tên thư mục
    • Nếu bạn vào một thư mục mà bạn không muốn, hãy chạy cd .. đi một cấp lên
  3. Chạy tệp .sh

    • Một khi bạn có thể xem ví dụ script1.sh với ls chạy này:

      ./script.sh

Tại sao nó lại là cách phức tạp?

Thiết bị đầu cuối có một bộ công cụ mạnh mẽ có thể truy cập bằng cách gõ lệnh. Các chuyên gia định vị tệp .sh bằng cách nhập ls và cd. Khi bạn đang ở đúng thư mục hiện tại bạn có thể chạy tập lệnh như sau:

./script1.sh

hoặc bạn có thể chạy và chuyển hướng đầu ra tới một tệp:

./script1.sh > out.txt

hoặc bạn có thể lọc đầu ra cho các từ khóa (ví dụ: "quả táo") sau đó chuyển hướng đến một tệp:

./script1.sh | grep apples > ./only-apples

Có hàng nghìn thứ bạn có thể làm với tệp đó bằng cách nhập một vài lệnh.

Một số khác, bạn có thể tải xuống một tệp từ Internet bằng một lệnh đơn giản:

wget www.google.com/images/logos/ps_logo2.png

Và sau đó mở tập tin như thế này:

shotwell ps_logo2.png

22
2018-05-01 02:52



Tôi không chắc chắn rằng Cách các chuyên gia làm điều đó là đúng, nó là một trường hợp của cách đơn giản các tiên tiến (để kiểm soát đầu ra) đường - Hailwood


Mở một thiết bị đầu cuối và điều hướng đến thư mục nơi .sh tập tin nằm. Sau đó nhập:

sh <name of file>.sh

18
2017-12-20 07:43





Trên Ubuntu 13.04 tập tin thực thi được mở trong Nautilus hiện được mở bằng gedit theo mặc định thay vì nhắc người dùng thực thi chúng. Để bật hành vi cổ điển, bạn cần điều chỉnh các tùy chọn:

Nautilus → Chỉnh sửa menu → Tùy chọn → Tab Hành vi → Nhấp vào nút radio gần Hỏi mỗi lần.


15
2018-06-10 21:41



Người hỏi câu hỏi đang nói về Ubuntu 10.10 - edwin
Cảm ơn bạn!!! Tôi không biết tại sao họ lại thay đổi điều này, không thể tìm ra cách để thực hiện bất cứ điều gì. - mpen
Đây là câu trả lời đúng cho ubuntus mới nhất. - gaRex
Làm thế nào để bạn có được Nautilus trong 15.10? - Yaakov Ainspan


Chuyển đến thư mục nơi .sh tập tin bằng cách sử dụng cd. Trong ví dụ này, tôi đã lưu trữ sh tệp dưới dạng ~/Desktop/shell_practice/test.sh

đầu tiên làm pwd để tìm ra vị trí của bạn và nếu nó trả về /home/username (Ở đâu username là tên người dùng thực của bạn), bạn có thể chạy

cd Desktop/shell/practice

Nếu bạn có vẻ ở một nơi khác, bạn có thể sử dụng đường dẫn tuyệt đối

cd ~/Desktop/shell/practice

hoặc là

cd $HOME/Desktop/shell/practice

hoặc thậm chí

cd /home/$USER/Desktop/shell/practice

đây là tất cả các cách mô tả cùng một địa điểm. Khi bạn đã đặt nó vào vị trí của tập lệnh, hãy nhập

ls

Nếu bạn có thể thấy sh tập tin trong đầu ra, bạn có thể sử dụng chmod để làm cho nó có thể thực thi được. Trong trường hợp của tôi, hãy nhớ, tên tệp là test.sh, vì vậy tôi sẽ chạy

chmod u+x test.sh

Bây giờ chúng ta đang ở trong cùng một thư mục với kịch bản lệnh, chúng ta phải chỉ định cho trình bao mà chúng ta muốn thực thi tệp bằng cách đưa ra vị trí của nó ./ (thư mục hiện tại theo sau là dấu tách đường dẫn, để phân biệt nó với tên tệp). Để chạy tập tin của tôi, tôi sẽ gõ:

./test.sh

Nếu kịch bản của bạn đã được viết chính xác, nó sẽ chạy mà không có lỗi ...

Đây là một ví dụ trực tiếp: Here is live example


5
2017-12-03 11:14



Điều này làm việc cho tôi để cài đặt Netbeans trên ubuntu - RuD3B0y
Wb, @ RuD3B0y, tôi đã cố gắng giữ các câu trả lời tốt nhất cho noobs, không có nội dung công nghệ cao, nếu bạn có một số chỉnh sửa bạn được chào đón. - TheExorcist


2 bước chính.

  1. trong terminal, sử dụng gedit để viết và lưu tập lệnh với phần mở rộng ".sh" vào màn hình nền. (nhưng bất kỳ trình soạn thảo văn bản nào cũng có thể được sử dụng)

  2. mở Nautilus và nhấp chuột phải vào tập tin script.sh.

    • bên dưới thuộc tính, hộp kiểm "cho phép thực thi tệp .."

    • trong menu Nautilus, nhấp vào tệp, sau đó chọn tùy chọn, sau đó là hành vi

    • kiểm tra "chạy các tập tin văn bản thực thi khi chúng được mở".

Bây giờ, khi bạn nhấp đúp vào tệp trên màn hình, nó sẽ thực thi. không cần . hoặc là ./


3
2017-10-24 14:24