Ⅰ 怎麼在linux里編寫腳本來比較任意幾個數的大小
你們的腳本太復雜了吧。
這樣就行了。
求最大數
read -a array && echo ${array[@]} | tr ' ' '\n' | sort -n | tail -n 1
求最小數
read -a array && echo ${array[@]} | tr ' ' '\n' | sort -n | head -n 1
例子:
[root@localhost OOO310_m19]# read -a array && echo ${array[@]} | tr ' ' '\n' | sort -n | tail -n 1
1 152 2 4 3 64
152
[root@localhost OOO310_m19]#
回帖的朋友再參考我的答案請註明下出處。
Ⅱ linux awk字元和數字怎麼比較大小
#因為比較運算符可以對字元串進行處理,於是不會把字元轉為數字
awk'BEGIN{print("a">"1")("a">1)("1"==1)("123">90)(123>90)(0+"123">90)("123"+0>90)("123"+"0">90)}'
執行結果:11101111
#而數學運算符只對數字進行運算,所以會把字元轉為數字,因此可以用+0來做字元轉數字操作
awk'BEGIN{printprint"123"+"0"}'
執行結果:123
awk'BEGIN{print"123"+"abc"}'
執行結果:123
Ⅲ Linux下shell腳本中怎麼比較兩個數字
[
1
-gt
0
]
測試1是否大於0,-gt表示大於,-lt測試小於,-eq比較兩個數字是否相等
Ⅳ linux 怎麼把數字比較大小
Shell代碼 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin ram_max=9 ram=10.2 #ram大於ram_max列印出1賦值給變數check check=`echo $ram > $ram_max bc` #判斷如果check匹配1列印1,注意空格(shell格式不正確會導致運行錯誤) if [ $check = 1 ] then echo 1 fi
Ⅳ linux 命令 比較百分數大小
aa=5.111%
bb=1.222%
test `echo ${aa%%%}'<'${bb%%%} |bc -l` -eq 1 && echo aa小於bb || echo aa大於bb
#上面的命令中
${aa%%%}的作用是去除數字末尾的百分號
使用bc的目的是,可以比較小數。
Ⅵ linux比較文件輸出不同的內容
linux比較文件輸出不同的內容目前據我所了解的有如下幾種方法,來比較兩個文件的行,以輸出他們的不同之處:1)
comm
mission:
comm
[-123]
file1
file2
[>
sfile]
NOTE:
file1,file2
must
be
firstly
sorted
!
-1/2/3
means:
-1
-----
rid
the
only
retained
contents
in
file1
-2
-----
rid
the
only
retained
contents
in
file2
-3
-----
rid
the
communal
lines
in
both
two
files
正如,上面說的那樣,comm命令運用的前提是針對兩個sorted文件!
該命令是對兩個已經排好序的文件進行比較。其中file1和file2是已排序的文件。comm讀取這兩個文件,然後生成三列輸出:僅在file1中出現的行;僅在file2中出現的行;在兩個文件中都存在的行。如果文件名用-
,則表示從標准輸入讀取。選項1、2或3抑制相應的列顯示。例如comm
-
12就只顯示在兩個文件中都存在的行;comm
-
23隻顯示在第一個文件中出現而未在第二個文件中出現的行;comm
-
123則什麼也不顯示。2)
grep
mission:
grep
-v
-f
file1
file2/*註::此法在對比數字時候比較湊效果,文本對比不建議使用*/3)
awk
mission:
awk
'{print
NR,$0}'
file1
file2
|sort
-k2|uniq
-u
-f
1|sort
-k1|awk
'{print
$2}'或者:awk
'{print
$0}'
file1
file2
|sort|uniq
-u4)
diff
mission:
diff
[-opt]
file1
file2
Ⅶ LINUX的chmod命令中經常看到設置許可權時使用744、664、755等數字應該如何理解這些數字
在Linux的chmod命令中設置許可權時使用的數字代碼是有一定意義的,本人總結幾個代碼如下:
1、在linux的chmod命令中,許可權對應的數值分別如下:r(read讀許可權):4w(write寫許可權): 2x(execute執行許可權):1 。
2、linux中的文件或者文件夾的許可權從左右到右依次為所有者許可權、所有者所在組的許可權、其它用戶許可權。
1)、744:表示所有者許可權為7、所有者所在組的許可權為4、其它用戶許可權為47=4+2+1,表示所有者有讀、寫、執行的許可權,所有者所在組及其它用戶都只有讀許可權。
2)、644:表示所有者許可權為6、所有者所在組的許可權為4、其它用戶許可權為46=4+2,表示所有者有讀、寫許可權,所有者所在組及其它用戶都只有讀許可權。
3)、755:表示所有者許可權為7、所有者所在組的許可權為5、其它用戶的許可權為57同1中所描述,5=4+1,即表示所有者所在組和其它用戶的許可權為讀和執行許可權。
Ⅷ linux shell中字元'1'如何進行比較
shell中有兩種比較,一種是字元串比較,直接使用運算符號進行比較,一種是值的比較(即數字的比較)只能使用關鍵字進行比較即-eq -lt等
當然也能使用關鍵字進行字元串的比較,比如-z 來判斷一個字元串是否為空
來一個例子
#!/bin/bash
a=1
if [ $a = 1 ]
then
echo =
fi
if [ $a -eq 1 ]
then
echo eq
fi
這時第一個if中的a既是進行了字元的比較,第二個if中是數值的比較。但結果是既輸出了= 也輸出了eq。就是說a即和數字的1相等,也和字元的1相等