shell內建命令 #yyds乾貨盤點#

大雄45發表於2022-12-20

shell內建命令 #yyds乾貨盤點#shell內建命令 #yyds乾貨盤點#
影響 程式的內建

:
true
false
exit
break
continue
shift
…

shift 使位置引數向左移動,預設移動1位,可以使用shift 2

如果希望處理完一個引數讓他消失,例如本來有3個引數,處理完一個後踢出去一個,就剩2個,可以使用shift命令來實現

exit 退出整個程式

break 結束當前迴圈,或跳出本層迴圈

break 1表示跳出一層迴圈,break 2表示跳出二層迴圈

continue 忽略本次迴圈剩餘的程式碼,直接進行下一次迴圈,可以這麼理解,continue只是跳出某一次迴圈,而break是從本次迴圈開始終止後面的迴圈

continue 1 表示跳出一層迴圈

continue 2 表示跳出二層迴圈

break和continue只能應用於迴圈中

1.continue和break的區別

#!/bin/bash
for i in {A..D}
do
        echo -n $i
        for j in {1..9}
        do
                if [ $j -eq 5 ];then
                        continue
                fi
                echo -n $j
        done
        echo
done

輸出:

[root@localhost d08_shell_nzml]# ./continue_break059.sh 
A12346789
B12346789
C12346789
D12346789
----------------------------------------------------------------------------------------
#!/bin/bash
for i in {A..D}
do
        echo -n $i
        for j in {1..9}
        do
                if [ $j -eq 5 ];then
                        break
                fi
                echo -n $j
        done
        echo
done
輸出:
[root@localhost d08_shell_nzml]# ./continue_break059.sh 
A1234
B1234
C1234
D1234

2.shift使位置引數移位
登入後複製

#!/bin/bash
#------------------使用shift移位------------------
while [ $# -ne 0 ]
do
        useradd $1
        echo "$1 is created....."
        shift 
done
執行:./shift jiang01 jiang02 jiang03

解析:使用shift後,當jiang01位置引數執行完後就會踢出去,然後位置引數個數就剩2個,當jiang02 jiang03分別執行完被踢出去後迴圈結束


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2870057/,如需轉載,請註明出處,否則將追究法律責任。

相關文章