在終端中打印
Script
#!/bin/bash
echo hello world
echo 'hello world'
echo "hello world"
echo -e "1\t2\t3"
echo "1\t2\t3"
Note
- 字符串可以以三種形式輸出,但是單引號(hào)的字符串中不能對(duì)變量求值,例如
var=1; echo 'hello $var' 會(huì)輸出 hello $var
- echo 的輸出會(huì)默認(rèn)會(huì)增加換行
- -e 表示字符串中有轉(zhuǎn)義字符
變量和環(huán)境變量
Script
#!/bin/bash
var=123456
echo $var
echo ${var}
echo "var length is: ${#var}"
var_quote="123456"
[ $var -eq $var_quote ] && echo 'var equals to var_quote'
[ $var == $var_quote ] && echo 'var equals to var_quote'
[ $var = $var_quote ] && echo 'var equals to var_quote'
Output
123456
123456
var length is: 6
var equals to var_quote
var equals to var_quote
var equals to var_quote
Note
- 不論是否有引號(hào),變量值的類型都是 String
-
var = value 和 var=value 兩者含義不同,前者表示等于條件判斷,后者表示賦值。
數(shù)學(xué)運(yùn)算
Script
#!/bin/bash
i=1
j=2
let k=i+j
echo k=i+j is: $k
let k++
echo k++ is: $k
let k--
echo k-- is: $k
k=$((i + j))
echo "(()) operator: $k"
k=$[i + j]
echo [] operator: $k
Note
- 可以通過(guò) let, $(()), $[] 對(duì)變量進(jìn)行整形計(jì)算
-
bc 可以進(jìn)行浮點(diǎn)數(shù)計(jì)算
重定向文件描述符
Script
#!/bin/bash
file_name=/tmp/temp.txt
touch $file_name
echo "hello" > $file_name
ls + &> $file_name
echo "append" >> $file_name
ls + 2>> $file_name
ls . 1>> $file_name
Note
-
> 表示截?cái)啵?code>>> 表示在文件末尾追加
-
cmd < file 表示將 file 的內(nèi)容重定向?yàn)?stdin
- 文件描述符 0,1,2 分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤
數(shù)組和關(guān)聯(lián)數(shù)組
Script
#!/bin/bash
array1=(1 2 3)
echo array1 is: ${array1[*]}
array2[0]=1
array2[1]=2
array2[2]=3
echo array2 is: ${array2[*]}
echo array2 length is: ${#array2[*]}
Note
- 關(guān)聯(lián)數(shù)組通過(guò)
declare -A map 聲明,在低版本的 bash 中不支持。
函數(shù)和參數(shù)
Script
#!/bin/bash
fn()
{
echo '$0 is: '$0
echo '$1 is: '$1
echo '$2 is: '$2
echo '$@ is: '$@
echo '$* is: '$*
return 10
}
fn 1 2
echo return value is: $?
Note
- 注意函數(shù)參數(shù)已經(jīng)返回值的語(yǔ)法
將命令的輸出存到變量中
Script
#!/bin/bash
file_name=/tmp/tmp.txt
echo -e "1\n2\n3" > $file_name
cmd_output=$(cat $file_name)
echo $cmd_output
cmd_output=`cat $file_name`
echo $cmd_output
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。