echo與函式
echo
echo -n 表示不換行輸出
echo -e 輸出轉義字元,將轉義後的內容輸出到螢幕上
常用的轉義字元如下:
\b 轉義後相當於按退格鍵(backspace),但前提是"\b"後面存在字元;"\b"表示刪除前一個字元,"\b\b"表示刪除前兩個字元。
\c 不換行輸出,在"\c"後面不存在字元的情況下,作用相當於 echo -n; 但是當"\c"後面仍然存在字元時,"\c"後面的字元將不會被輸出。
\n 換行,被輸出的字元從"\n"處開始另起一行。
\f 換行,但是換行後的新行的開頭位置連線著上一行的行尾;
\v 與\f相同;
\t 轉以後表示插入tab,即橫向製表符;
\r 游標移至行首,但不換行,相當於使用"\r"以後的字元覆蓋"\r"之前同等長度的字元;但是當"\r"後面不存在任何字元時,"\r"前面的字元不會被覆蓋
\ 表示插入""本身;
for i in {1…10} {1…10…2}
$(seq 1 10) $(seq 1 2 10)
for ((i=1; i<=10; i++)) ((i=1; i<=10; i+=2))
do
echo $i
done
for ((i=1; i<=10; i++));do echo $i;done
break跳出單個迴圈
for ((a=1; a<=5; a++))
do
echo “outer loop: $a”
for ((b=1; b<=50; b++))
do
if [ $b -eq 5 ]
then
break
fi
echo “inter loop: $b”
done
done
continue中止某次迴圈中的命令,但不會完全中止整個命令
for ((a=1; a<=15; a++))
do
if [ $a -gt 5 ] && [ $a -lt 10 ]
then
continue
fi
echo “current value: $a”
done
IFS欄位分隔符
預設包含 空格,製表符,換行符 set | grep IFS
IFS=$’ \t\n’
修改成只換行
IFS=$’\n’
IFS=:
IFS=’,’
IFS.OLD=
I
F
S
I
F
S
=
IFS IFS=
IFSIFS=’\n’
…
IFS=$IFS.OLD
輸出環境變數PATH所包含的所有目錄以及其中的所有可執行檔案
函式
【1】
function 函式名 {
命令序列
}
【2】
函式名() {
命令序列
}
返回值
return表示退出函式並返回一個退出值,指令碼中可以用
?
變
量
顯
示
該
值
使
用
原
則
:
1
、
函
數
一
結
束
就
取
返
回
值
,
因
為
?變數顯示該值 使用原則: 1、函式一結束就取返回值,因為
?變量顯示該值使用原則:1、函數一結束就取返回值,因為?變數只返回執行的最後一條命令的退出狀態碼
2、退出狀態碼必須是0~255,超出時值將為除以256取餘
function db1 {
read -p “請輸入:” value
return
[
[
[value * 2]
}
db1
echo $?
db1() {
read -p “請輸入:” value
echo
[
[
[value * 2]
}
result=db1
echo $result
傳參
sum() {
s=$[$1 + $2]
echo $s
}
sum $1 $2
遞迴
函式呼叫自己本身的函式
fact() {
if [
1
−
e
q
1
]
t
h
e
n
e
c
h
o
1
e
l
s
e
l
o
c
a
l
t
e
m
p
=
1 -eq 1 ] then echo 1 else local temp=
1−eq1]thenecho1elselocaltemp=[
1
−
1
]
l
o
c
a
l
r
e
s
u
l
t
=
1 - 1] local result=
1−1]localresult=(fact $temp)
echo $[$1 * KaTeX parse error: Expected 'EOF', got '}' at position 14: result] fi }̲ read -p "請輸入:"…(fact $n)
echo $result
建立庫
vim myfuncs.sh
jiafa() {
echo $[$1 + $2]
}
chengfa() {
echo $[$1 * $2]
}
chufa() {
if [ $2 -ne 0 ];then
echo $[$1 / $2]
else
echo “$2不能為0”
fi
}
vim test.sh
. myfuncs.sh
value1=10
value2=5
result1=jiafa $value1 $value2
result2=chengfa $value1 $value2
result3=chufa $value1 $value2
echo “加法結果為:
r
e
s
u
l
t
1
"
e
c
h
o
"
乘
法
結
果
為
:
result1" echo "乘法結果為:
result1"echo"乘法結果為:result2”
echo “除法結果為:$result3”
相關文章
- ncurses初始化函式:raw(),cbreak(),echo(),noecho(),keypad(),halfdelay()函式
- Python函式與lambda 表示式(匿名函式)Python函式
- Oracle分析函式與視窗函式Oracle函式
- 建構函式與解構函式函式
- 函式節流與函式防抖函式
- 回撥函式 與 函式閉包函式
- 何時使用函式表示式與函式宣告函式
- webgl內建函式--幾何函式與矩陣函式Web函式矩陣
- webgl內建函式--向量函式與紋理查詢函式Web函式
- 函式與極限 第一節 對映與函式函式
- 函式外與函式內的變數函式變數
- 普通函式與函式模板呼叫規則函式
- 箭頭函式與普通函式區別函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- 生成函式與多項式函式
- 函式遞迴與生成式函式遞迴
- 函式宣告與函式表示式有什麼區別?函式
- 建構函式與普通函式的區別函式
- C++中函式指標與函式物件C++函式指標物件
- 箭頭函式與普通函式的區別函式
- 15.3 極限函式與和函式性質函式
- 普通函式與函式模板呼叫規則2函式
- Shell學習【printf與echo】
- SUBSTRING() 與 CONV() 函式函式
- JavaScript | 函式與方法JavaScript函式
- fork()與vfork()函式函式
- insert()與substr()函式函式
- 函式正規化入門(惰性求值與函式式狀態)函式
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- 深入理解函式節流與函式防抖函式
- 第 8 節:函式-函式型別與作用域函式型別
- fill函式與memset函式的區別(c++)函式C++
- PHP筆記:建構函式與解構函式PHP筆記函式
- Scala 的方法與函式函式
- 集合與函式入門函式
- generator函式與async/await函式AI
- 非同步操作系列之Generator函式與Async函式非同步函式
- C語言函式指標與回撥用函式C語言函式指標