日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell--基本语法

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell--基本语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼續運算符模塊。

part1 算術運算符

+

-

*

/

%

part2 關系操作

與(())連用

<

>

<=

>=

==

!=

&&

||

?

注意:一個等號是賦值操作,兩個等號是判斷

test命令相關,[]可以達到一樣的效果

?

part3 賦值運算符

=

+=

*=

/=

%=

part4 shell里的所有計算器
$[] (()) $(()) expr bc bc -l

浮點運算:yum install bc -y

part5 測試操作

命令執行后會返回到一個系統變量中 $?
如果$?值為0 表示命令執行成功 否則為失敗

測試命令 test [ ] [[ ]] (( ))
打開man test 逐一介紹每個參數

part5-1、測試文件狀態
-d 目錄
-s 文件長度 > 0、非空
-f 正規文件
-w 可寫

-r 可讀

-x 可執行

-L 符號連接

-u 文件有 suid 位設置

part5-2、字符串測試
= 兩個字符串相等
!= 兩個字符串不相等
-z 空串
-n 非空串

part5-3、測試數值
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于

?

part5-4、拓展測試符號 [[ ]] (())
數字測試符號
# [ 10 < 2 ] # 語法錯誤
-bash: 2: 沒有那個文件或目錄
#

# [[ 2 > 10 ]] # 結果錯誤
# echo $?
0
# [[ 20 > 10 ]] # 正確
# echo $?
0
# (( 10 < 20 ))
# echo $?
0

?

字符測試
# [ "aa" = "aa" ]
# echo $?
0
# [[ "aa" = "aa" ]]
# echo $?
0
# (( "aa" = "aa" )) #結果錯誤
# echo $?
1
混合測試
# [ a = a -a 10 < 20 ]
-bash: 20: 沒有那個文件或目錄
[root@seker ~]# [[ a = a -a 10 < 20 ]]
-bash: syntax error in conditional expression
-bash: syntax error near `-a'
[root@seker ~]# [[ a = a && 10 < 20 ]]
[root@seker ~]# echo $?
0
[root@seker ~]# [[ a = a || 10 < 20 ]]
[root@seker ~]# echo $?
0
[root@seker ~]# (( a = a || 10 < 20 ))
[root@seker ~]# echo $?
0
[root@seker ~]# (( a = a && 10 < 20 ))
[root@seker ~]# echo $?
0
[root@seker ~]#
結論:
比較數字,使用(( ))
其他測試使用 [[ ]]
包含數字比較的混合測試,使用[[ expr1 && expr2 ]] (( expr1 || expr2 ))

?

兩個文件的比較
FILE1 -ef FILE2
測試兩個文件是否是相同的inode
有時為了找到同一個INODE號的文件 更傾向于使用 find 命令的 -inum 或 --samefile

?

FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2

?

FILE1 -ot FILE2
FILE1 is older than FILE2

四 流程控制

part1分支結構

if 測試中還可以執行命令 根據命令的返回值做判斷
# if cd / ;then echo Y ;fi
# if grep -q root /etc/passwd ;then echo Y ;fi

?

?

part2 循環結構

?

part2-1 while循環

while (條件)

do
動作
done

需要無限循環時我們會選擇while :

練習:
1.while死循環

2.wihle和read實現逐行處理

part2-2 for循環

shell格式的for

?

for i in {1..10} do echo $i done

?

shell的for,常用in列表方式

小例子:

檢查內網存活的IP

? ?

?

多個for嵌套
嵌套for中使用

continue:默認退出本次循環

break:默認退出本層循環

其他

可視塊:Ctrl+v? shift +a/i/o 輸入內容,比如空格,然后esc,優化視覺效果

?

轉載于:https://www.cnblogs.com/metianzing/p/6946872.html

總結

以上是生活随笔為你收集整理的shell--基本语法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。