Hướng dẫn cho người mới bắt đầu để BASH - Phần 1 - Hello World

Có rất nhiều hướng dẫn trên internet cho thấy cách tạo kịch bản Shell bằng cách sử dụng BASH và hướng dẫn này nhằm mục đích cung cấp cho một spin hơi khác nhau bởi vì nó được viết bởi ai đó có rất ít kinh nghiệm kịch bản shell.

Bây giờ bạn có thể nghĩ rằng đây là một ý tưởng ngớ ngẩn nhưng tôi thấy rằng một số hướng dẫn nói chuyện với bạn như thể bạn đã là một chuyên gia và các hướng dẫn khác mất quá nhiều thời gian để cắt theo đuổi.

Trong khi kinh nghiệm kịch bản shell LINUX / UNIX của tôi bị hạn chế, tôi là một nhà phát triển phần mềm bởi thương mại và tôi là một bàn tay dab tại các ngôn ngữ kịch bản như PERL, PHP và VBScript.

Điểm của hướng dẫn này là bạn sẽ học khi tôi học và bất kỳ thông tin nào tôi nhận được tôi sẽ chuyển cho bạn.

Bắt đầu

Rõ ràng là có rất nhiều lý thuyết mà tôi có thể chuyển cho bạn ngay lập tức như mô tả các loại vỏ khác nhau và những lợi thế của việc sử dụng BASH trên KSH và CSH.

Hầu hết mọi người khi học một cái gì đó mới muốn nhảy vào và bắt đầu với một số bài học thực tế đầu tiên và với điều đó trong tâm trí tôi sẽ không mang bạn với đố mà không phải là quan trọng ngay bây giờ.

Tất cả những gì bạn cần để làm theo hướng dẫn này là một trình soạn thảo văn bản và một thiết bị đầu cuối chạy BASH (trình bao mặc định trên hầu hết các bản phân phối Linux).

Trình chỉnh sửa văn bản

Các hướng dẫn khác mà tôi đã đọc đã gợi ý rằng bạn cần một trình soạn thảo văn bản bao gồm mã hóa các lệnh màu và các trình soạn thảo được đề xuất là VIM hoặc EMACS .

Mã hóa màu rất đẹp vì nó làm nổi bật các lệnh khi bạn gõ chúng nhưng đối với người mới bắt đầu tuyệt đối bạn có thể dành vài tuần đầu tiên học VIM và EMACS mà không cần viết một dòng mã.

Trong số hai tôi thích EMACS nhưng thành thật mà nói tôi thích sử dụng một trình soạn thảo đơn giản như nano , gedit hoặc leafpad.

Nếu bạn đang viết kịch bản trên máy tính của riêng mình và bạn biết bạn sẽ luôn có quyền truy cập vào môi trường đồ họa thì bạn có thể chọn trình chỉnh sửa phù hợp nhất với bạn và có thể là đồ họa như GEdit hoặc trình chỉnh sửa chạy trực tiếp trong thiết bị đầu cuối chẳng hạn như nano hoặc vim.

Với mục đích của hướng dẫn này, tôi sẽ sử dụng nano vì nó được cài đặt tự nhiên trên phần lớn các bản phân phối Linux và do đó có khả năng bạn sẽ có quyền truy cập vào nó.

Mở một cửa sổ đầu cuối

Nếu bạn đang sử dụng bản phân phối Linux với máy tính để bàn đồ họa như Linux Mint hoặc Ubuntu, bạn có thể mở một cửa sổ đầu cuối bằng cách nhấn CTRL + ALT + T.

Nơi để đặt kịch bản của bạn

Với mục đích của hướng dẫn này, bạn có thể đặt tập lệnh của mình vào một thư mục trong thư mục chính.

Trong cửa sổ đầu cuối đảm bảo bạn đang ở trong thư mục chính bằng cách gõ lệnh sau:

cd ~

Lệnh cd là viết tắt của thư mục thay đổi và dấu ngã (~) là một lối tắt cho thư mục chủ của bạn.

Bạn có thể kiểm tra xem bạn có đang ở đúng chỗ không bằng cách gõ lệnh sau:

pwd

Lệnh pwd sẽ cho bạn biết thư mục làm việc hiện tại của bạn (nơi bạn đang ở trong cây thư mục). Trong trường hợp của tôi nó trở về / home / gary.

Bây giờ rõ ràng bạn sẽ không muốn đặt kịch bản của bạn thẳng vào thư mục nhà để tạo ra một thư mục được gọi là kịch bản bằng cách gõ lệnh sau đây.

tập lệnh mkdir

Thay đổi vào thư mục tập lệnh mới bằng cách gõ lệnh sau:

cd script

Tập lệnh đầu tiên của bạn

Đó là phong tục khi học cách lập trình để làm cho chương trình đầu tiên chỉ đơn giản là xuất ra các từ "Hello World".

Từ bên trong thư mục tập lệnh của bạn, nhập lệnh sau:

nano helloworld.sh

Bây giờ nhập mã sau vào cửa sổ nano.

#! / bin / bash echo "hello world"

Nhấn CTRL + O để lưu tệp và CTRL + X để thoát khỏi nano.

Bản thân kịch bản được tạo thành như sau:

#! / Bin / bash cần được bao gồm ở đầu tất cả các tập lệnh bạn viết vì nó cho phép người phiên dịch và hệ điều hành biết cách xử lý tệp. Về cơ bản chỉ cần nhớ để đặt nó vào và quên đi lý do tại sao bạn làm điều đó.

Dòng thứ hai có một lệnh duy nhất được gọi là echo mà xuất ra văn bản ngay sau nó.

Lưu ý rằng nếu bạn muốn hiển thị nhiều hơn một từ, bạn cần phải sử dụng dấu ngoặc kép (") xung quanh các từ.

Bây giờ bạn có thể chạy tập lệnh bằng cách gõ lệnh sau:

sh helloworld.sh

Các từ "hello world" sẽ xuất hiện.

Một cách khác để chạy tập lệnh như sau:

./helloworld.sh

Cơ hội là nếu bạn chạy lệnh đó trong thiết bị đầu cuối của bạn ngay lập tức, bạn sẽ nhận được một lỗi cho phép.

Để cấp quyền chạy tập lệnh theo cách này, hãy nhập như sau:

sudo chmod + x helloworld.sh

Vậy điều gì đã xảy ra ở đó? Tại sao bạn có thể chạy sh helloworld.sh mà không thay đổi quyền nhưng chạy ./helloworld.sh đã gây ra sự cố?

Phương thức đầu tiên tải trình thông dịch bash lấy helloworld.sh làm đầu vào và làm việc với nó. Trình thông dịch bash đã có quyền chạy và chỉ cần chạy các lệnh trong tập lệnh.

Phương thức thứ hai cho phép hệ điều hành làm việc với kịch bản và do đó nó đòi hỏi một bit thực thi để thực hiện.

Kịch bản trên là ok nhưng điều gì xảy ra nếu bạn muốn hiển thị dấu ngoặc kép?

Có nhiều cách khác nhau để đạt được điều này. Ví dụ bạn có thể đặt dấu gạch chéo ngược trước dấu ngoặc kép như sau:

echo \ "hello world \"

Điều này sẽ tạo ra đầu ra "hello world".

Đợi một chút, nếu bạn muốn hiển thị \ "hello world \" thì sao?

Bạn cũng có thể thoát khỏi các nhân vật trốn thoát

echo \\ "\" hello world \\ "\"

Điều này sẽ tạo ra \ "hello world \".

Bây giờ tôi biết những gì bạn đang suy nghĩ. Nhưng tôi thực sự muốn hiển thị \\ "\" hello world \\ "\"

Sử dụng tiếng vang với tất cả các nhân vật thoát có thể nhận được khá ngớ ngẩn. Có một lệnh thay thế bạn có thể sử dụng được gọi là printf.

Ví dụ:

printf '% s \ n' '\\ "\" hello world \\ "\"'

Lưu ý rằng văn bản chúng tôi muốn hiển thị nằm giữa các dấu nháy đơn. Lệnh printf xuất văn bản từ tập lệnh của bạn. % S có nghĩa là nó sẽ hiển thị một chuỗi, \ n xuất ra một dòng mới.

Tóm lược

Chúng tôi đã không thực sự bao phủ nhiều mặt đất trong phần một nhưng hy vọng bạn có kịch bản đầu tiên của bạn làm việc.

Trong phần tiếp theo, chúng ta sẽ xem xét việc cải thiện kịch bản hello world để hiển thị văn bản bằng các màu khác nhau, chấp nhận và xử lý các tham số đầu vào, các biến và nhận xét mã của bạn.