shell腳本比較
這兩個沒有可比性。
shell腳本只能和python的自動化相關做個比較,它的針對性強一些。
『貳』 Shell腳本 比較兩個欄位並提取對應的欄位值
稍微改一下就行了。我這里沒有運行環境,沒能測試,你試一下,應該可以了。
#!/usr/bin/ksh
awk 'BEGIN{
FS="|"
OFS="|"
}{
if(FILENAME =="file1.txt")
{
arm[$1]=$2
}
else
{
print $2"|"arm[$1]
}
}' file1.txt file2.unl
『叄』 linux shell 如何比較兩個整數的大小
linux shell比較兩個整數的大小可以採用以下的代碼:
#!/bin/sh
max=9
min=8
if [ $max -gt $min ]
then
echo 1
else
echo 0
fi
數字的比較:
-eq 相等(equal)
-ne 不等(not equal)
-gt 大於(greater than)
-lt 小於(less than)
-ge 大於等於 (greater than or equal)
-le 小於等於 (less than or equal)
字元串的比較:
[ $str1 = $str2 ] 等於
[ $str1 != $str2 ] 不等於
[ -z $str ]空字元串返回true
[ -n $str ] 或者 [ $str ] 非空字元串返回true
(3)shell腳本比較擴展閱讀:
Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。
shell命令
命令行c
用戶登錄到Linux系統時,可以看到一個shell提示符,標識了命令行的開始。用戶可以在提示符後面輸入任何命令及參數。例如:
$ date
二 11 23 01:34:58 CST 1999
$
用戶登錄時,實際進入了shell,它遵循一定的語法將輸入的命令加以解釋並傳給系統。命令行中輸入的第一個字必須是一個命令的名字,第二個字是命令的選項或參數,命令行中的每個字必須由空格或TAB隔開,格式如下:
$ Command Option Arguments
『肆』 Shell 腳本 比較數字大小
你的寫下正確的,以下的也行
if [[ $DEV_SIZE -ge ${EXT_LIMIT[0]} && $DEV_SIZE -le ${EXT_LIMIT[1]} ]];
if [ $DEV_SIZE -ge ${EXT_LIMIT[0]} -a $DEV_SIZE -le ${EXT_LIMIT[1]} ];
如果使用[ ]或者[[ ]]進行整數測試的,裡面的比較運算符要使用-eq或-le或-ge等符號,在((裡面才可以用>=和<=比較運算,而且[[ 裡面邏輯運算用&&和||, [ 裡面邏輯運算用-a和-o,((也可以用&&和||
『伍』 Linux下shell腳本中怎麼比較兩個數字
[
1
-gt
0
]
測試1是否大於0,-gt表示大於,-lt測試小於,-eq比較兩個數字是否相等
『陸』 用shell腳本實現兩個文件比較
[root@localhostxly]#lla.txtb.txt
-rw-r--r--1rootroot28Jul1315:00a.txt
-rw-r--r--1rootroot30Jul1315:00b.txt
[root@localhostxly]#cata.txt
hello
123
thisisa.txt
456
[root@localhostxly]#catb.txt
hello!
123
thisisb.txt
4567
[root@localhostxly]#diffa.txtb.txt
1c1
<hello
---
>hello!
3,4c3,4
<thisisa.txt
<456
---
>thisisb.txt
>4567
1c1就是指2個文件第一行不一樣
<指的是a.txt
>指的是b.txt
『柒』 不區分大小寫如何比較shell腳本中的字元串
方法一:
你可以將兩個字元串統統轉成大寫(或小寫), 再比較
#!/bin/bash
xxx= "Temp "
yyy= "temp "
x_tmp=$(echo $xxx | tr [a-z] [A-Z])
y_tmp=$(echo $yyy | tr [a-z] [A-Z])
if [ "$x_tmp " = "$y_tmp " ];then
echo "PASS "
else
echo "FAIL "
fi
優點:通用
方法二:
用expr的話,得這樣:
xxx=Temp
if [ `expr match $xxx "[T|t][E|e][M|m][P|p]$ "` -ne 0 ]
then
echo "PASS "
else
echo "FAIL "
fi
優點:高效,但是限制為特定字元序列
『捌』 shell腳本,一行一行比較兩個文本文件。 shell腳本,對一行一行讀取文本文件得到的那一行數據進行字元串
沒明白你的意思,就寫了一個判斷兩個文件對應行是不是相同。在線的話就追問我。
line=`cat
file1|wc
-l`
for
((i=1;i<=$line;i++));do
file1=`awk
'NR="'$i'"{print
$0}'`
file1
file2=`awk
'NR="'$i'"{print
$0}'`
file2
if
[
$file1
==
$file2
];then
echo
line
$i
looks
same!
else
echo
line
$i
looks
different!
fi
done
『玖』 perl 、shell、python三種腳本語言那種好學、易用
perl、shell、python三種腳本語言的區別:
1、適用不同:shell是操作linux的基本,是必須學的。學shell就是學linux命令。perl有強大的正則表達式支持,對於文本處理非常強悍,玩linux不得不學。python作用一種面向對象的,能作為linux腳本的語言,學好之後能幫你很好地完成工作。
2、特點不同:Perl是一種能完成任務的語言。從一開始,Perl就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。它可以很容易操作數字,文本,文件和目錄,計算機和網路,特別是程序的語言。
這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。而且它還應該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。
shell提供了你與操作系統之間通訊的方式。這種通訊可以以交互方式(從鍵盤輸入,並且可以立即得到響應),或者以shellscript(非交互)方式執行。
shellscript是放在文件中的一串shell和操作系統命令,它們可以被重復使用。本質上,shellscript是命令行命令簡單的組合到一個文件裡面。Shell基本上是一個命令解釋器,類似於DOS下的command.com。
它接收用戶命令(如ls等),然後調用相應的應用程序。較為通用的shell有標準的Bourneshell(sh)和Cshell(csh)。
Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格,Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。
3、優點不同:perl,用作文本處理比較好,可以作為系統的輔助工具。shell,用作系統維護、操作等方面。python,功能強大,模塊多、跨平台能力好,完全面向對象,尤其適用做大型腳本程序的開發和快速開發。
(9)shell腳本比較擴展閱讀:
erl比shell+sed+awk更強大,但學習兩者並不沖突,通常是學習shell做為腳本編程的入門基礎。而Python在應用領域則與前兩者有很大的差別,無太大的可比性。面向不同的任務,可以只需用到其中的一種,也可能三種都要用到,所以究竟該學誰不學誰,需要由面對的任務來決定。
總之,shell是基礎,其他是進階輔助。
Shell腳本通常都是以.sh為後綴名的,這個並不是說不帶.sh這個腳本就不能執行,只是大家的一個習慣而已。所以,以後你發現了.sh為後綴的文件那麼它一定會是一個shell腳本了。
test.sh中第一行一定是「#!/bin/bash」它代表的意思是,該文件使用的是bash語法。如果不設置該行,那麼你的shell腳本就不能被執行。』#』表示注釋。後面跟一些該腳本的相關注釋內容以及作者和創建日期或者版本等等。
『拾』 shell腳本兩個日期值比較
這種標准格式的時期應該是無法比較的,你應該給這個時間轉化為linux的絕對時間然後比較大小,給你share一個我之前寫的一個計算一個命令執行時間的的腳本,你一看就明白了。
#########################
BEGIN=`date +"%Y-%m-%d %H:%M:%S"`
bkup_system|tee -a bkup_time.log
END=`date +"%Y-%m-%d %H:%M:%S"`
print $BEGIN begin back up|tee -a bkup_time.log
print $END end buck up|tee -a bkup_time.log
#時間轉化
Sys_data_begin=`date -d "$BEGIN" +%s`
Sys_data_end=`date -d "$END" +%s`
#計算間隔,可以根據間隔的正負來比較你時間的大小
INTER=`expr $Sys_data_end - $Sys_data_begin`
echo Total time do back up is $INTER s|tee -a bkup_time.log
########################