Bash có một số lệnh đi kèm với shell (tức là được xây dựng bên trong bash shell).
Khi bạn thực thi một lệnh tích hợp sẵn, bash shell sẽ thực thi nó ngay lập tức mà không cần gọi bất kỳ chương trình nào khác.
Các lệnh tích hợp trong Bash shell nhanh hơn các lệnh bên ngoài, vì các lệnh bên ngoài thường phân nhánh một quá trình để thực thi nó.
Trong bài viết này, hãy cùng chúng tôi xem xét một số nội trang bash shell hữu ích với các ví dụ.
1. Ví dụ về lệnh xuất Bash
lệnh export được sử dụng để xuất một biến hoặc hàm sang môi trường của tất cả các tiến trình con đang chạy trong shell hiện tại.
export varname=value
export -f functionname # exports a function in the current shell.
Nó xuất một biến hoặc hàm với một giá trị. Lệnh "env" liệt kê tất cả các biến môi trường. Trong ví dụ sau, bạn có thể thấy env hiển thị biến đã xuất.
$ export country=India $ env SESSIONNAME=Console country=India _=/usr/bin/env
Lệnh "export -p" cũng hiển thị tất cả các biến đã xuất trong trình bao hiện tại.
2. Ví dụ về lệnh Bash eval
Lệnh eval kết hợp tất cả các đối số đã cho và đánh giá biểu thức được kết hợp và thực thi nó, đồng thời trả về trạng thái thoát của lệnh đã thực thi.
$ cat evalex.sh if [ ! -z $1 ] then proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | grep $1" else proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu" fi eval $proccomm
Đoạn mã trên chấp nhận một đối số, là mẫu cho lệnh grep. Điều này liệt kê các quy trình theo thứ tự sử dụng cpu và greps cho một mẫu cụ thể được đưa ra trong dòng lệnh.
Lưu ý: Bài viết này là một phần của Chuỗi Hướng dẫn Bash đang thực hiện của chúng tôi.
3. Ví dụ về lệnh băm Bash
lệnh băm duy trì một bảng băm có tên đường dẫn của lệnh đã sử dụng. Khi bạn thực thi một lệnh, nó sẽ tìm kiếm một lệnh trong biến $ PATH.
Nhưng nếu lệnh có sẵn trong bảng băm, nó sẽ chọn từ đó và thực thi nó. Bảng băm duy trì số lần truy cập gặp phải cho mỗi lệnh được sử dụng cho đến nay trong trình bao đó.
$ hash hits command 1 /usr/bin/cat 2 /usr/bin/ps 4 /usr/bin/ls
Bạn có thể xóa một lệnh cụ thể khỏi bảng băm bằng tùy chọn -d và tùy chọn -r để đặt lại bảng băm hoàn chỉnh.
$ hash -d cat $ hash hits command 2 /usr/bin/ps 4 /usr/bin/ls
4. Ví dụ về lệnh bash pwd
pwd là một lệnh tích hợp trong shell để in thư mục làm việc hiện tại. Về cơ bản, nó trả về giá trị của biến được xây dựng trong $ {PWD}
$pwd /home/sasikala/bash/exercises $echo $PWD /home/sasikala/bash/exercises
5. Ví dụ về lệnh chỉ đọc Bash
lệnh readonly được sử dụng để đánh dấu một biến hoặc hàm là chỉ đọc, không thể thay đổi thêm.
$ cat readonly_ex.sh #!/bin/bash # Restricting an array as a readonly readonly -a shells=("ksh" "bash" "sh" "csh" ); echo ${#shells[@]} # Trying to modify an array, it throws an error shells[0]="gnu-bash" echo ${shells[@]} $ ./readonly_ex.sh 4 readonly_ex.sh: line 9: shells: readonly variable
6. Ví dụ về lệnh Bash shift
lệnh shift được sử dụng để dịch chuyển các tham số vị trí sang trái N số lần và đổi tên biến tương ứng sau khi dịch chuyển.
$ cat shift.sh #! /bin/bash while [ $# -gt 0 ] do case "$1" in -l) echo "List command" ls shift ;; -p) echo "Process command" ps -a shift ;; -t) echo "Hash Table command" hash shift ;; -h) echo "Help command" help shift ;; esac done $./shift.sh -l -t List command analysis break testing t1.sh temp Hash Table command hits command 1 /usr/bin/ls
7. Ví dụ về lệnh kiểm tra bash
lệnh kiểm tra đánh giá biểu thức điều kiện và trả về 0 hoặc một dựa trên đánh giá. Tham khảo trang hướng dẫn sử dụng bash để biết thêm các toán tử kiểm tra.
#! /bin/bash if test -z $1 then echo "The positional parameter \$1 is empty" fi
8. Ví dụ về lệnh Bash getopts
Lệnh getopts được sử dụng để phân tích cú pháp các đối số dòng lệnh đã cho. Chúng ta có thể xác định các quy tắc cho các tùy chọn, tức là tùy chọn nào chấp nhận đối số và tùy chọn nào không. Trong lệnh getopts, nếu một tùy chọn được theo sau bởi dấu hai chấm, thì nó sẽ yêu cầu một đối số cho tùy chọn đó.
getopts cung cấp hai biến $ OPTIND và $ OPTARG có chỉ mục của tham số tiếp theo và đối số tùy chọn tương ứng.
$ cat options.sh #! /bin/bash while getopts :h:r:l: OPTION do case $OPTION in h) echo "help of $OPTARG" help "$OPTARG" ;; r) echo "Going to remove a file $OPTARG" rm -f "$OPTARG" ;; esac done $ ./options.sh -h jobs help of jobs jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args] Lists the active jobs. The -l option lists process id's in addition to the normal information; the -p option lists process id's only.
9. Lệnh đăng xuất Bash
Đăng xuất được tích hợp sẵn được sử dụng để thoát khỏi trình bao hiện tại.
10. Ví dụ về lệnh Bash umask
lệnh umask đặt mặt nạ tạo chế độ tệp cho quá trình hiện tại. Khi người dùng tạo một tệp, quyền mặc định của nó dựa trên giá trị được đặt trong umask. Quyền mặc định cho tệp là 666 và nó sẽ bị che bằng các bit umask khi người dùng tạo tệp.
Để biết thêm chi tiết, vui lòng tham khảo bài viết Quyền đối với tệp và thư mục của chúng tôi.
Khi người dùng tạo tệp 666 được che bằng 022, do đó, quyền tệp mặc định sẽ là 644.
$ umask 0022 $ > temporary $ ls -l temporary -rw-r--r-- 1 root root 4 Jul 26 07:48 temporary
11. Ví dụ về tập lệnh Bash
set là một lệnh tích hợp trong shell, được sử dụng để thiết lập và sửa đổi các biến bên trong của shell. lệnh set không có đối số liệt kê tất cả các biến và giá trị của nó. lệnh set cũng được sử dụng để đặt giá trị cho các tham số vị trí.
$ set +o history # To disable the history storing. +o disables the given options. $ set -o history -o enables the history $ cat set.sh var="Welcome to thegeekstuff" set -- $var echo "\$1=" $1 echo "\$2=" $2 echo "\$3=" $3 $ ./set.sh $1=Welcome $2=to $3=thegeekstuff
12. Bash bỏ đặt ví dụ lệnh
unet built-in được sử dụng để đặt biến shell thành null. unset cũng được sử dụng để xóa một phần tử của một mảng và
để xóa toàn bộ mảng.
Để biết thêm chi tiết về mảng Bash, hãy tham khảo bài viết trước của chúng tôi 15 Thao tác với mảng Bash
$ cat unset.sh #!/bin/bash #Assign values and print it var="welcome to thegeekstuff" echo $var #unset the variable unset var echo $var $ ./unset.sh welcome to thegeekstuff
Trong ví dụ trên, sau khi bỏ đặt, biến “var” sẽ được gán với chuỗi null.
13. Ví dụ về lệnh Bash let
lệnh let được sử dụng để thực hiện các phép toán số học trên các biến shell.
$ cat arith.sh #! /bin/bash let arg1=12 let arg2=11 let add=$arg1+$arg2 let sub=$arg1-$arg2 let mul=$arg1*$arg2 let div=$arg1/$arg2 echo $add $sub $mul $div $ ./arith.sh 23 1 132 1
14. Ví dụ về lệnh Bash shopt
Lệnh shopt tích hợp sẵn được sử dụng để thiết lập và hủy đặt một tùy chọn shell. Sử dụng lệnh này, bạn có thể sử dụng thông minh của shell.
$cat shopt.sh #! /bin/bash ## Before enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" shopt -s xpg_echo ## After enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" # Before disabling aliases alias l.='ls -l .' l. # After disabling aliases shopt -u expand_aliases l. $ ./shopt.sh WELCOME\n GEEKSTUF\n WELCOME GEEKSTUF total 3300 -rw------- 1 root root 1112 Jan 23 2009 anaconda-ks.cfg -r-xr-xr-x 1 root root 3252304 Jul 1 08:25 backup drwxr-xr-x 2 root root 4096 Jan 26 2009 Desktop shopt.sh: line 17: l.: command not found
Trước khi bật tùy chọn xpg_echo, câu lệnh echo không mở rộng chuỗi thoát. "L." được đặt bí danh là ls -l của thư mục hiện tại. Sau khi tắt tùy chọn expand_aliases trong shell, nó không mở rộng bí danh, bạn có thể nhận thấy lỗi l. không tìm thấy lệnh.
15. Ví dụ về lệnh Bash printf
Tương tự như printf trong ngôn ngữ C, bash printf tích hợp được sử dụng để định dạng các hoạt động in.
Trong ví dụ 13, tập lệnh thực hiện phép toán số học trên hai đầu vào. Trong tập lệnh đó thay vì câu lệnh echo, bạn có thể sử dụng câu lệnh printf để in đầu ra có định dạng như hình dưới đây.
Trong arith.sh, thay thế câu lệnh echo bằng câu lệnh printf này.
printf "Addition=%d\nSubtraction=%d\nMultiplication=%d\nDivision=%f\n" $add $sub $mul $div $ ./arith.sh Addition=23 Subtraction=1 Multiplication=132 Division=1.000000