Linux基礎 12 shell裡所有的計算器

2021-08-02 03:51:00 字數 2226 閱讀 3732

$ (()) $(()) expr bc bc -l

浮點運算:yum install bc -y

[root@miwifi-r3-srv ~]# echo 'scale=2;1/3'|bc -l

.33

測試檔案狀態

-d 目錄

-s 檔案長度 > 0、非空

-f 正規檔案

-w 可寫

-r 可讀

-x 可執行

-l 符號連線

-u 檔案有 suid 位設定

字串測試

= 兩個字串相等

!= 兩個字串不相等

-z 空串

-n 非空串

[root@miwifi-r3

-srv ~]

# var1='abc'

[root@miwifi-r3

-srv ~]

# var2='123'

[root@miwifi-r3

-srv ~]# [

$var1

==$var2

][root@miwifi-r3

-srv ~]

# echo $?

1

測試數值

-eq 等於

-ne 不等於

-gt 大於

-lt 小於

-ge 大於等於

-le 小於等於

[root@miwifi-r3-srv ~]# [ 10000 -gt 250 ] #不要使用大於號小於號等於號等,要使用man test中規定的,詳見下一小節4拓展

[root@miwifi-r3-srv ~]# echo $?

0

拓展測試符號 [[ ]] (())

數字測試符號

# [ 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

Linux筆記12 Shell基礎

histroy 歷史命令一般存放在 bash histroy檔案中,根據執行這個命令使用不同的引數,對此檔案的內容可以寫入或是清空。歷史命令缺省會儲存1000條,這個配置可以在環境變數 etc profile配置檔案中進行修改。tab鍵 按tab鍵進行命令或檔名補全。別名 alias,可以給乙個命令...

1 2 shell的變數功能

首先給出變數的定義 變數是指沒有固定的值,可以改變的數。變數以非數字的符號來表達,一般用拉丁字母。變數的設定需要使用 等號左邊為變數名稱,右邊為變數內容,變數的定義遵循以下規則 等號兩邊不能直接使用空格,如下所示為錯誤 haoqiqi localhost myname haoqiqi bash my...

12 shell 字串處理

tips 在上面替換結構中string不一定是常值的,可用另外乙個變數的值或是一種命令的輸出。是去掉左邊 在鍵盤上 在 之左邊 是去掉右邊 在鍵盤上 在 之右邊 和 中的單一符號是最小匹配,兩個相同符號是最大匹配。tips 這四種模式中都不會改變 variable 的值,其中,只有在pattern中...