shell腳本中 if 判斷時候-s是什么意思? shell腳本中 if 判斷時候-s是什么意思
指的是文件大小非0時為真。
相關(guān)評說:
東寶區(qū)非標: ______ 你既然已經(jīng)知道這個文件叫什么就沒有意義了....理論上應(yīng)該用find命令或者你知道這個目錄在系統(tǒng)中的什么位置. 比如 ls | grep aaa a=`echo $?` b=`ls | grep aaa` if [ $a -eq 0 ] then tar zcvf Name.tar.gz $b else echo 'Don't have this file.' fi
東寶區(qū)非標: ______ 表正則匹配,例如:if [[ "$date" =~ "[0-9]{8}" ]]
東寶區(qū)非標: ______ #!/bin/bash LIMIT=$((1024*1024*1024*10)) #10G Bytes FILESIZE=0 while [ $FILESIZE -lt $LIMIT ];do sleep 1 FILESIZE=`stat -c%s 123.cap` done # do some killall killall tcpdump
東寶區(qū)非標: ______ $1是輸入的第一個輸入的第一個參數(shù).這句話的意思是判斷是否有輸入第一個參數(shù)
東寶區(qū)非標: ______ ?符號顯示上一條命令的返回值,如果為0則代表執(zhí)行成功,其他表示失敗. if [[ $? -eq 0 ]];then A else b;fi 簡單點: mkdir /xxx && echo A ||echo B 或者用if判斷: mkdir /xxx if [ $? -eq 0 ];then echo A else echo B fi
東寶區(qū)非標: ______ 那是因為shell是異步運行的,如果運行后立即用if去判斷生成的文件在不在,這時候shell仍然在運行中的,所以文件實際上是不存在的,即使差0.00001毫秒,不在的它就是不在,你說在那是因為你是過了幾秒鐘才去看的,當然在啦.如果連續(xù)運行兩次,道理還是一樣,第二次運行的時候它實際上判斷的是第一次運行時生成的文件,所以它會判斷存在. 你應(yīng)該在shell運行后延時1秒以上(根據(jù)實際情況而定)再用IF去判斷.
東寶區(qū)非標: ______ 使用-e 判斷,例如 if [ -e $FILE ] then echo $FILE 作為文件或文件夾是存在的 fi
東寶區(qū)非標: ______ 1、用if [-d或-f ]判斷即可 2、例如f.sh: #!/bin/bash file=$1 if [[ -z $1 ]];then echo "Usage: $0 filename" exit 0; fi if [ -d $file ];then echo $file is a directory; else echo $file is a file; fi 3、執(zhí)行 ./f.sh /opt /opt is a directory ——-—————————————————————————— ./f.sh /bin/ls /bin/ls is a file
東寶區(qū)非標: ______ 和C語言類似,在Shell中用if、then、elif、else、fi這幾條命令實現(xiàn)分支控制.這種流程控制語句本質(zhì)上也是由若干條Shell命令組成的,例如先前講過的 if [ -f ~/.bashrc ]; then ~/.bashrc fi 其實是三條命令,if [ -f ~/.bashrc ]是第一條,then . ~/.bashrc...
東寶區(qū)非標: ______ if 條件;then if 條件;then 代碼 else 代碼 fi else if 條件;then 代碼 else 代碼 fi fi