Nhập môn Bash Scripting
Alex Scriven
Data Scientist
Tương tự các ngôn ngữ khác, bạn gán biến bằng dấu bằng.
var1="Moon"
Sau đó tham chiếu bằng ký hiệu $.
echo $var1
Moon
Đặt tên biến tùy ý (nhưng hợp lý):
firstname='Cynthia' lastname='Liu'echo "Hi there" $firstname $lastname
Hi there Cynthia Liu
Cả hai biến đều được in ra — tốt!
Nếu thiếu ký hiệu $ — đó không phải biến!
firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Bash rất khắt khe với khoảng trắng khi tạo biến. Tránh chèn khoảng trắng!
var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Trong Bash, dấu ngoặc kép khác nhau mang ý nghĩa khác nhau. Cả khi tạo biến và in.
'sometext') = Shell hiểu nguyên văn nội dung bên trong"sometext") = Shell hiểu nguyên văn, trừ ký hiệu $ và backticks Cách cuối tạo “shell trong shell”, như dưới đây. Hữu ích để gọi chương trình dòng lệnh. Dùng backticks.
Hãy xem hiệu ứng của các cách tạo biến khác nhau
now_var='NOW'now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Chương trình date sẽ hữu ích để minh họa backticks
Kết quả bình thường của chương trình:
date
Mon 2 Dec 2019 14:07:10 AEDT
Giờ hãy dùng shell lồng trong shell:
rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.
Chương trình date được gọi, output được bắt và chèn ngay trong lệnh echo.
Chúng ta đã dùng một shell trong một shell!
Có một cách tương đương với backticks:
rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.
Cả hai hoạt động như nhau, nhưng backticks là kiểu cũ. Dấu ngoặc tròn được dùng nhiều hơn hiện nay. (Xem http://mywiki.wooledge.org/BashFAQ/082)
Nhập môn Bash Scripting