So sanh bang trong linux script
Trong Bash có 1 số biến đặc biệt như sau: Show
Sự khác nhau giữa $* và [email protected]: Về cơ bản thì $* và [email protected] giống nhau khi sử dụng với biến đơn không đặt trong dấu “”. Khi đặt vào trong dấu nháy kép “” thì:
Ví dụ khác nhau giữa $* và [email protected]: #!/bin/bash echo -e "Using "$*":" for str in "$*" do echo $str done echo -e "Using "[email protected]":" for str in "[email protected]" do echo $str done Kết quả khi chạy script ./test.sh my name is Dang là: # Khi sử dụng “$*” thì các tham số được xem là một chuỗi phân biệt bởi khoảng trắng # Using "$*": my name is Dang # Khi sử dụng “[email protected]” thì các tham số được xem như các biến riêng lẽ được đặt trong một mảng # Using "[email protected]": my name is Dang Các toán tử cơ bản:
echo `expr 2 + 3` #sẽ hiển thị kết quả là 5 echo `expr 2 \* 3’ #kết quả là 2 * 3 = 6
let “a=$a+3” let ”c=$a*$b” Ngoài ra let có thể sử dụng các toán tử +=, -=, =+, =- khá tương tự như trong C/C++ và java
Z=$(($a + $b)) Z=$(($a * $b)) Kiểm tra điều kiện (condition):
ví dụ: if [4 -eq 2]; then echo True; else echo False; fi # False So sánh số học:
Ví dụ: var=10 [ $var -eq 0 ] => FALSE So sánh chuỗi:
str1="HELLO"
str2="Hello"
[[ $str1 > $str2 ]] =>TRUE
Kiểm tra tập tin:
ví dụ: fpath="/etc/passwd" if [ -e $fpath ]; then echo File exists; else echo Does not exist; fi mảng trong bash:
#
# ${#
# ${
# ${
# ${
# ${#
# ${#
# ${
#
# Remove by regex match #
#
list=("1" "2" "3") list2=("4" "5" "6") #
# Qua bài viết trên, chúng ta đã nắm được các toán tử cơ bản trong bash, cách thực hiện các phép tính toán, các phép so sánh số học và chuỗi, kiểu dữ liệu mảng (array). Sau bài viết, các bạn hãy thực hành thêm về các toán tử cơ bản trên để nắm chắc về chúng nhé vì chúng sẽ hổ trợ rất nhiều cho chúng ta trong việc học tập lập trình ngôn ngữ Bash sau này đó. Bài viết sau, mình sẽ cùng các bạn tìm hiểu về các cấu trúc điều khiển và các toán tử xử lý chuỗi trong ngôn ngữ Bash. |