shell腳本ifd
『壹』 在shell腳本中有個語句是if [ -d $1"/"$file ],其中 $1"/"$file是什麼意思
$1是指你運用這個腳本後跟著的第一個片語,比如你這個腳本命名為shell.sh,那麼shell.sh /etc時,/etc代表$1 , for file in ` ls $1 ` 這段語法是代表以file為變數枚舉出$1也就是/etc下所有文件,For...In 聲明用於對數組或者對象的屬性進行循環操作。
『貳』 linux的shell 腳本里怎麼用if 判斷文件大小呀
find有一個參數 -size +10000M
你可以定義一個變數 它的值為
查找目錄下 是否滿足同時名字叫123.cap 並且尺寸大於10000M的
是就賦予var
先執行tcpmp 後台運行
然後做一個循環 每隔一秒判斷這個var
var=$(find . -name "123.cap" -size +10000M)
判斷這個var是否不為空
當不為空 那麼代表文件超出10g了 那麼就完畢吧 exit
思路這樣 你自己試試看
『叄』 Shell基本腳本命令使用教程
1、本地變數:用戶私有變數,只有本用戶可以訪問,保存在家目錄的 .bash_profile、.bashrc文件中
2、全局變數:所有用戶都可以使用,保存在 /etc/profile 文件中
3、用戶自定義變數:用戶自定義,比如腳本中的變數
定義變數格式: 變數名=值 (=兩邊不能有空格)
字元串用單引號或者雙引號引起來
shell支持正則表達式的常見命令:grep、sed、awk。
sed 是一個行(流)編輯器,非互動式的對文件內容進行增刪改查操作
awk 能夠集過濾、提取、運算為一體,它的工作方式是讀取數據,將每一行數據視為一條記錄,每條記錄以欄位分隔符分成若干欄位,然後輸出各個欄位的值。平行命令還有 gawk、pgawk、dgawk。
『肆』 linux shell 腳本中if語句的用法 在腳本中使用if if[! -w 「$logfile」 ] 為什
if[!-w"$logfile"]
thenecho"notwriteable"
echo"notwriteableagain"
fi
注意空格,shell裡面有的地方必須有空格,有的地方必須沒有空格。[ ]前後都要有空格
『伍』 Shell 腳本 if 判斷後,怎麼終止當前腳本但不退出 shell
代碼如下:
if list then
do something here
elif list then
do another thing here
else
do something else here
fi
EX1:
復制代碼代碼如下:
#!/bin/sh
SYSTEM=`uname -s` #獲取操作系統類型,我本地是linux
if [ $SYSTEM = "Linux" ] ; then #如果是linux的話列印linux字元串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi #ifend
基本上和其他腳本語言一樣。沒有太大區別。不過值得注意的是。[]裡面的條件判斷。
『陸』 shell 腳本 if 的用法小問題
1. 執行shell腳本的時候加上 -x ,執行腳本時會把過程列出來!(有利於我這種新手學習)sh -x shell (./shell 也可以執行shell腳本 但是沒有-x參數)2. 傳的值的個數大於 read 定義的接受變數的時候會把多餘的值都給最後一個變數!!3. expr 對整數型變數進行運算 如果運算結果不是整數小數點後面的全部省去 (乘號要用轉意字元'/') .4. 在shell腳本裡面 執行一條輸出的命令(pgrep mysqld)怎麼吧輸出的結果作為值賦給變數?web=$(/usr/bin/pgrep mysqld) #可以用 變數=$(命令) 和 變數=`命令` 來吧命令執行的結果賦給變數
if [ $web = ]
then
/etc/init.d/mysql start
fi
5.查看某個命令所在的位置可以用 whereis /which/type 三個命令來查看6.awk命令的應用作用:分段提取! (一行為單位來進行分段)awk -F [分隔符] '條件 動作' /對象例: awk -F : '$3==0 {print $1}' /etc/passwd例: awk -F : '$1 == root {print $1} ' /etc/passwd# -F : 用:分割passwd每行的內容 ($1 指第一段內容 $2 指第二段內容$n 指第n段內容)# ' 匹配 動作' 單引號裡面寫的是 匹配命令和列印動作 匹配$3==0 第三段等於0 列印{print $1} 列印第一段內容 ($3 == 0 匹配出行 在列印出這些行的第一段內容 )
『柒』 linux 下shell 腳本 if條件,想寫 a=0且b=0 或者c!=0,應該怎麼寫啊、我寫成if [$a -eq 0] && [ $b -eq 0
root@Bizbox:~# a=0
root@Bizbox:~# b=0
root@Bizbox:~# c=5
root@Bizbox:~# if [ $a = 0 -a $b = 0 ]&&[ $c != 0 ]; then
> echo success
> fi
success
注意方括弧中前後的空格!
『捌』 關於shell 中的if 邏輯表達式。
if expression
then
commands
fi
這是if其中的一種結構,在結構中就能看到if 後面接的是什麼。
這個後邊描述的是你想要干什麼,根據你的需要去描述出來然後進行下一步的操作
這個並不是固定的。你還是看書吧。。書上寫的比這里回答的人描述的詳細。
if和then的語法 如果if和then處在同一行 中間需要用;隔開,如果不在同一行可以不用寫
if grep "file " /tmp/tmp.txt ;then 這屬於語法格式,這個是固定的。其實一行內多個命令之間都需要用;號隔開。如果不在同一行就不用考慮。就像你在終端輸入命令一樣,一行一個命令。一行多跳命令需要用;隔開。。也是這個道理。至於!取反。。!屬於操作符 舉個例子來說 $A = $B 如果結果匹配 執行 then 不匹配執行else $A != $B !=就是不等 !進行取反操作 如果判斷結果匹配 執行then 不匹配執行eslse
哇。。說了好多廢話。。我還是強烈建議你仔細看書。。
______________________________________________
1)我還是建議你看書,而且是看對書,我說的這些都是書上有的。
關於[]你不應該理解成test語法才需要 test就是[] []就是test
拋開if不講 test也可以單獨使用 比如test xxx 寫成 [xxxx]意思是一樣的。
至於里邊加的參數,就涉及到你的需求 要干什麼 要判斷字串?整數?表達式?文件?
跟用test 還是用 []並沒有太大關系 舉個例子 test $? -le 0 和 [ $? -le 0] 意思是一樣的
2)要解釋if ! grep "file" /tmp/tmp.txt ; then 首先你要明白系統所設置的操作符。比如= 比如+、-、*、/、這些都是操作符,至於! 屬於位操作符, 我下班了。有空聊
『玖』 linux的shell 腳本里怎麼用if 判斷文件大小呀
需要幾個工具 基本上思路是 用 配合awk取得文件大小 ,然後if判斷
偽代碼如下
s=` -k logfile|awk '{print $1}'`
if [ $s -gt 1024000000 ]
then
停止oracle監聽進程
rm -rf logfile && touch logfile
啟動oracle監聽進程
else
continue
fi
『拾』 shell 腳本的if語句報錯
#!/bin/bash
read-p"pleseinputonenumber:"k
forain{1,2,3}
do
forbin{1,2,3}
do
forcin{1,2,3}
do
fordin{1,2,3}
do
n=$((a*1000+$b*100+$c*10+$d))#shell中不能直接執行算術運算,要加上$(())
m=$((n%80))
if[$m-eq$k];then#[]方括弧與條件要用空格分開
if[$a-eq$c];then
if[$b-eq$d];then
echo$n
fi
fi
fi
done
done
done
done