- vừa được xem lúc

Tìm hiểu về Bash Script cơ bản

0 0 20

Người đăng: Bùi Danh Nam

Theo Viblo Asia

Chào các bạn . Như tiêu đề thì hôm nay chúng ta sẽ cùng tìm hiểu về Bash Script

Đặt vấn đề

Có bao giờ bạn cảm thấy mất thời gian và công sức khi cứ phải lặp lại thao tác gõ những lệnh dài dòng và khó nhớ trên Terminal . Và bạn muốn viết những câu lệnh đó ở một chỗ nào đó và sau chỉ cần lấy ra chạy

Giải pháp cho bạn là hãy viết một file script ( file .sh trên mồi trường linux và .bat trên môi trường window ) chỉ cần viết 1 lần và có thể chạy bất kỳ khi nào

1) Cấu trúc file bash

Dòng đâu tiên và bắt buộc với một file bash với đuôi mở rộng là .sh ( trên Linux ) hoặc .bat trên Window ) là câu lệnh này

#!/bin/bash# // tiếp theo là những câu lệnh thực thi 

VD : myscript.sh

#!/bin/bash
echo Hello // in ra màn hình terminal chứ Hello 

Để run file này đơn giản trên màn hình terminal chỉ cần chạy ./myscript.sh

2) Các biến trong file bash

Có 2 kiểu biến trong file bash

  • Setting a value for a variable.
  • Reading the value for a variable.

Đơn giản khi chúng ta cần tham chiều và để đọc giá trị của biên đó thì ta dùng Reading the value với cú pháp thêm dấu $ trước tên biến Khi chúng ta muốn gán giá trị cho biến thì ta dùng Setting a value chỉ cần bỏ dấu $ đằng trước đi là được

Một số biến của hệ thống như :

$0- Tên của file Bash script.
$1 - $9 - lần lượt là các đối số truyền vào cho file Bash script.
$# - Số lượng các arguments chúng ta truyền vào cho file the Bash script.
_@.com - Tất cả các đối số cung cấp cho file Bash script.
$? - Trạng thái của câu lệnh thực hiện gần nhất ( 0 -> true , 1 -> false ) $$ - ID của script hiện tại .

VD :

#!/bin/bash
arg=$1
echo arguments1 = $arg

Run file : ./myscript.sh 123 với 123 là giá trị argument truyền vào

màn hình sẽ in ra kết quả như sau :

_@.com:~/Desktop$ bash ./myscipt.sh 123
arguments1 = 123

3) Input trong file bash

Như ví dụ bên trên mình đang truyển giá trị theo kiểu Command line arguments

Một cách khác là mình sẽ dùng cách Ask the User for Input

Cú pháp :

read value

VD :

_@.com:~/Desktop$ bash ./myscipt.sh Enter your name :
Hihi
Your name is Hihi

Một số option

-p : thêm dấu nhắc nhập lệnh -s : ẩn đi giá trị bạn nhập

#!/bin/bash read -p 'Username: ' uservar
read -sp 'Password: ' passvar echo Username : $uservar Password : $passvar 

Khi bạn muốn nhập nhiều gía trị :

read var1 var2 var3 

4) If , If else Statements

Cậu lệnh điều kiện

Cú pháp

if [ <some test> ]
then
<commands>
else
<other commands>
fi

VD :

#!/bin/bash if [ $# -eq 1 ] // kiêm tra số lượng các argument then
nl $1
else
//some action fi

Hoặc câu lệnh elif

if [ <some test> ]
then
<commands>
elif [ <some test> ] then
<different commands>
else
<other commands>
fi

VD :

#!/bin/bash if [ $1 -ge 18 ]
then
echo You may go to the party.
elif [ $2 == 'yes' ]
then
echo You may go to the party but be back before midnight.
else
echo You may not go to the party.
fi

Boolean Operations gồm có

  • and - &&
  • or - ||

VD

if [ -r $1 ] && [ -s $1 ]
then
echo This file is useful.
fi

5) Case Statements

Cú pháp :

case <variable> in
<pattern 1>)
<commands>
;;
<pattern 2>)
<other commands>
;;
esac

VD :

#!/bin/bash
case $1 in
start)
echo starting
;;
stop)
echo stoping
;;
restart)
echo restarting
;;
*)
echo don\'t know
;;
esac

Tổng kết

Ok .Chăc chỉ cần như này là các bạn đã có thể áp dụng để chạy nhiều câu lệnh trên terminal dung bash script rồi Phần này mình xin dừng lại ở đây , phần tiếp theo mình sẽ giới thiệu về vòng lắp và function trong Bash Script

Cảm ơn các bạn rất nhiều ! Một số nguồn mình thao khảo : https://devhints.io/bash https://ryanstutorials.net/bash-scripting-tutorial/ https://linuxconfig.org/bash-scripting-tutorial

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 496

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 373

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 691

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 334

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 417

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 413