Linux篇:shell腳本中if的“-e,-d,-f”
最近在學一段腳本中的if語句中出現(xiàn)了這么一句:
if [ ! -f "/usr/bin/svnserve" ]
一時沒想起這個-f的意思,于是重新翻了之前的筆記,把相關的知識點總結(jié)如下:
-e filename 如果 filename存在,則為真
-d filename 如果 filename為目錄,則為真
-f filename 如果 filename為常規(guī)文件,則為真
-L filename 如果 filename為符號鏈接,則為真
-r filename 如果 filename可讀,則為真
-w filename 如果 filename可寫,則為真
-x filename 如果 filename可執(zhí)行,則為真
-s filename 如果文件長度不為0,則為真
-h filename 如果文件是軟鏈接,則為真
filename1 -nt filename2 如果 filename1比 filename2新,則為真。
filename1 -ot filename2 如果 filename1比 filename2舊,則為真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
04 字符串變量表達式
if [ $a = $b ] 如果string1等于string2,則為真,字符串允許使用賦值號做等號
if [ $string1 != $string2 ] 如果string1不等于string2,則為真
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 為空,則為真
if [ $sting ] 如果string 非空,返回0 (和-n類似)
邏輯非 ! 條件表達式的相反
if [ ! 表達式 ]
if [ ! -d $num ] 如果不存在目錄$num
邏輯與 –a 條件表達式的并列
if [ 表達式1 –a 表達式2 ]
邏輯或 -o 條件表達式的或
if [ 表達式1 –o 表達式2 ]
滿販15659708187: linux shell的執(zhí)行 shell腳本如下 TIMELIMIT=4 read - t $ -
古縣平帶: ______ sh 腳本 # $1 就是你執(zhí)行的腳本名 ./腳本 # $1 就是腳本后的第一個參數(shù),這里為空.
滿販15659708187: linux中的命令在shell腳本中怎么寫 -
古縣平帶: ______ 執(zhí)行“nano function.sh”命令,創(chuàng)建新的shell腳本文件,名字為“function.sh”. 編輯新創(chuàng)建的shell腳本文件“function.sh".函數(shù)必須先定義后使用. shell腳本的內(nèi)容如下: #!/bin/bash add(){ sum_1=$1; sum_2=$2; sum=`expr $sum_1 + $...
滿販15659708187: 在Linux執(zhí)行shell腳本的命令是什么 -
古縣平帶: ______ 如果你shell腳本名字是a.sh 你可以 sh a.sh 或者 . ./a.sh
滿販15659708187: linux下的shell腳本. -
古縣平帶: ______ #!/bin/bash function calc() { if [ $1 -eq 100 ] then echo "num = 100" elif [ $1 -gt 100 ] then echo "num > 100" elif [ $1 -lt 100 ] then echo "num fi } while [ 1 ] do read -p "putin num:" a calc $a if [ $a -eq -1 ] then echo "num = -1 exit!" break fi ...
滿販15659708187: 請教Linux shell下如何同時執(zhí)行多個腳本 -
古縣平帶: ______ Linux下可以有兩種方式執(zhí)行Shell腳本:1、用shell程序執(zhí)行腳本:根據(jù)shell腳本的類型,選擇shell程序,常用的有sh,bash,tcsh等(一般來說第一行#!/bin/bash里面指明了shell類型的,比如#!/bin/bash指明是bash,#!/bin/sh則是sh);然后輸入命令(其中bash為shell的名稱,myshell.sh則為要執(zhí)行的代碼):bash myshell.sh2、直接執(zhí)行腳本:不過首先的加上可執(zhí)行權限(也許要root權限,4情況而定),執(zhí)行:
滿販15659708187: 什么是shell腳本 -
古縣平帶: ______ shell腳本默認是Linux上的概念.shell是人機交互的接口,是包在Linux內(nèi)核外的一個“殼”,翻譯Linux用戶輸入的指令(shell命令)并交由內(nèi)核執(zhí)行.有點類似DOS.一組shell命令寫在一個文件里,通過邏輯控制語句控制什么條件下執(zhí)行什么語句,以完成特定的自動化操作任務.這個文件就是shell腳本.所做的任務可以是文本處理,可以是數(shù)學計算,可以是監(jiān)控值守,可以是數(shù)據(jù)庫操作,等等.
滿販15659708187: Linux中讓創(chuàng)建一個Shell腳本,包含以下用戶名及口令: -
古縣平帶: ______ #!/bin/bash/usr/sbin/useradd Tom -p t820as1/usr/sbin/useradd Jahn -p j2930ak
滿販15659708187: Linux shell腳本里經(jīng)常出現(xiàn) while [ 1 ] 什么意思 -
古縣平帶: ______ 1、1帶表true2、循環(huán)繼續(xù) while [true] { do sth }3、結(jié)論就是無限循環(huán).
滿販15659708187: linux下如何寫個SHELL腳本,每天執(zhí)行這么幾句命令: -
古縣平帶: ______ 每天自動執(zhí)行肯定是要用一個crontab的 腳本可以這樣寫: #!/bin/bash PRO=ps x|grep p|grep -v grep|awk '{print $1}' kill -9 $PRO service httpd start 腳本上面即可實現(xiàn)了 如果要每天自動執(zhí)行,那么需要添加一條crontab 如果你的P進程是apache進程,那么直接start就行,如果不是那么要restart 0 1 * * * /usr/local/encode/apachectl restart 上面提到的只能在/usr/local/encode下執(zhí)行是說明你的服務直接執(zhí)行的腳本
if [ ! -f "/usr/bin/svnserve" ]
一時沒想起這個-f的意思,于是重新翻了之前的筆記,把相關的知識點總結(jié)如下:
-e filename 如果 filename存在,則為真
-d filename 如果 filename為目錄,則為真
-f filename 如果 filename為常規(guī)文件,則為真
-L filename 如果 filename為符號鏈接,則為真
-r filename 如果 filename可讀,則為真
-w filename 如果 filename可寫,則為真
-x filename 如果 filename可執(zhí)行,則為真
-s filename 如果文件長度不為0,則為真
-h filename 如果文件是軟鏈接,則為真
filename1 -nt filename2 如果 filename1比 filename2新,則為真。
filename1 -ot filename2 如果 filename1比 filename2舊,則為真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
04 字符串變量表達式
if [ $a = $b ] 如果string1等于string2,則為真,字符串允許使用賦值號做等號
if [ $string1 != $string2 ] 如果string1不等于string2,則為真
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 為空,則為真
if [ $sting ] 如果string 非空,返回0 (和-n類似)
邏輯非 ! 條件表達式的相反
if [ ! 表達式 ]
if [ ! -d $num ] 如果不存在目錄$num
邏輯與 –a 條件表達式的并列
if [ 表達式1 –a 表達式2 ]
邏輯或 -o 條件表達式的或
if [ 表達式1 –o 表達式2 ]
Ubuntu系統(tǒng)下bash和dash的區(qū)別
inux 操作系統(tǒng)缺省的 shell 是Bourne Again shell,它是 Bourne shell 的擴展,簡稱 Bash,與 Bourne shell 完全向后兼容,并且在Bourne shell 的基礎上增加、增強了很多特性。GNU\/Linux 操作系統(tǒng)中的 \/bin\/sh 本是 bash (Bourne-Again Shell) 的符號鏈接,但鑒于 bash 過于復雜,有人把 ash 從 ...
相關評說:
古縣平帶: ______ sh 腳本 # $1 就是你執(zhí)行的腳本名 ./腳本 # $1 就是腳本后的第一個參數(shù),這里為空.
古縣平帶: ______ 執(zhí)行“nano function.sh”命令,創(chuàng)建新的shell腳本文件,名字為“function.sh”. 編輯新創(chuàng)建的shell腳本文件“function.sh".函數(shù)必須先定義后使用. shell腳本的內(nèi)容如下: #!/bin/bash add(){ sum_1=$1; sum_2=$2; sum=`expr $sum_1 + $...
古縣平帶: ______ 如果你shell腳本名字是a.sh 你可以 sh a.sh 或者 . ./a.sh
古縣平帶: ______ #!/bin/bash function calc() { if [ $1 -eq 100 ] then echo "num = 100" elif [ $1 -gt 100 ] then echo "num > 100" elif [ $1 -lt 100 ] then echo "num fi } while [ 1 ] do read -p "putin num:" a calc $a if [ $a -eq -1 ] then echo "num = -1 exit!" break fi ...
古縣平帶: ______ Linux下可以有兩種方式執(zhí)行Shell腳本:1、用shell程序執(zhí)行腳本:根據(jù)shell腳本的類型,選擇shell程序,常用的有sh,bash,tcsh等(一般來說第一行#!/bin/bash里面指明了shell類型的,比如#!/bin/bash指明是bash,#!/bin/sh則是sh);然后輸入命令(其中bash為shell的名稱,myshell.sh則為要執(zhí)行的代碼):bash myshell.sh2、直接執(zhí)行腳本:不過首先的加上可執(zhí)行權限(也許要root權限,4情況而定),執(zhí)行:
古縣平帶: ______ shell腳本默認是Linux上的概念.shell是人機交互的接口,是包在Linux內(nèi)核外的一個“殼”,翻譯Linux用戶輸入的指令(shell命令)并交由內(nèi)核執(zhí)行.有點類似DOS.一組shell命令寫在一個文件里,通過邏輯控制語句控制什么條件下執(zhí)行什么語句,以完成特定的自動化操作任務.這個文件就是shell腳本.所做的任務可以是文本處理,可以是數(shù)學計算,可以是監(jiān)控值守,可以是數(shù)據(jù)庫操作,等等.
古縣平帶: ______ #!/bin/bash/usr/sbin/useradd Tom -p t820as1/usr/sbin/useradd Jahn -p j2930ak
古縣平帶: ______ 1、1帶表true2、循環(huán)繼續(xù) while [true] { do sth }3、結(jié)論就是無限循環(huán).
古縣平帶: ______ 每天自動執(zhí)行肯定是要用一個crontab的 腳本可以這樣寫: #!/bin/bash PRO=ps x|grep p|grep -v grep|awk '{print $1}' kill -9 $PRO service httpd start 腳本上面即可實現(xiàn)了 如果要每天自動執(zhí)行,那么需要添加一條crontab 如果你的P進程是apache進程,那么直接start就行,如果不是那么要restart 0 1 * * * /usr/local/encode/apachectl restart 上面提到的只能在/usr/local/encode下執(zhí)行是說明你的服務直接執(zhí)行的腳本