linux shell 編程2 if then else fi 字符串空的判斷

一、linux

#!/bin/sh
#name : test linux shell
# 標準輸入,獲取從鍵盤輸入的數據
read  name      
# 判斷是否爲空還能夠使用 -z $name 若是成立則空 
# -s $name  判斷不爲空   
if [ "$name" ="" ]
then
echo  "name is null "
else
echo   "name value is   $name"
fi


二、
shell

#  判斷獲取的數值的大小
#!/bin/sh
#name : test linux shell
read  name
if [ "$name" -le 6 ]
then
echo  "value   $name  less than 6 "
else
echo   "value  $name  greater  than 6 "
fi


三、
less

#  檢測 grep 結果,判斷這個要找的是否在結果中
#!/bin/sh
#name : test linux shell
if  grep 'linux'  Tlinux.sh  > /dev/null 2>&1
then
echo  "  linux   in  tlinux.sh  "
else
echo   "   linux  not in tlinux l.sh "
fi


四、
命令行

#  文件的拷貝判斷
#!/bin/sh
#name : test linux shell
if  cp  tests tests12.sh >/dev/null
then
echo "good copy"
else
echo   " `basename $0`: erroe "
fi



*************************/dev/null *******************
日誌

能夠把/dev/null看做一個"黑洞",它很是等價於一個只寫文件,全部寫入它的內容都會永遠丟失。code

而嘗試從它那兒讀取內容則什麼也讀不到然而, /dev/null對命令行和腳本都很是的有用。進程

一、禁止標準輸出class

cat $filename >/dev/null
# 文件內容丟失,而不會輸出到標準輸出.test

二、禁止標準錯誤file

rm $badname 2>/dev/null
# 這樣錯誤信息[標準錯誤]就被丟到太平洋去了.

三、禁止標準輸出和標準錯誤的輸出.

cat $filename 2>/dev/null >/dev/null

四、清除日誌文件內容

cat /dev/null > /var/log/messages
# : > /var/log/messages 有一樣的效果, 但不會產生新的進程.(由於:是內建的)


*********************   2>&1   **********************

這兒命令是由三部分組成的,2 、>& 、1 這三部分組成,其中的1,2,以及之後會看到的 0 表示的是他們的輸出輸入方式,其中0 表示標準輸入, 1 標準輸出 、2 、表示標準錯誤輸出 而  >& 表示把符號左邊的內容以符號右邊的形式輸出

相關文章
相關標籤/搜索