1. 程式人生 > >linux 指令碼(1)

linux 指令碼(1)

比較:

-ne —比較兩個引數是否不相等
-lt —引數1是否小於引數2
-le —引數1是否小於等於引數2
-gt —引數1是否大於引數2
-ge —引數1是否大於等於引數2
-f — 檢查某檔案是否存在(例如,if [ -f "filename" ])
-d — 檢查目錄是否存在

注意if語句 當中的空格  判斷條件[ ]  內的空格不能少

TEMP_PATH="/home/oracle/log-temp"
LOG_REMOTE_ALERT="/opt/oracle/oracle/diag/rdbms/test/test/alert/log.xml"
#判斷檔案是否存在  如果不存在 則為安裝完之後 首次執行
if [ ! -e $TEMP_PATH"/ora-alert-var.txt" ];then
        echo "file not exists";
        echo "0">$TEMP_PATH"/ora-alert-var.txt"
fi

echo "file exists";
line_var_old=$(cat $TEMP_PATH"/ora-alert-var.txt")
echo $line_var_old
line_var_now=$(cat $LOG_REMOTE_ALERT|wc -l)
echo $line_var_now

if [ $line_var_now -gt $line_var_old ]; then
        start_line=$[$line_var_old+1]
        echo $start_line
        tail -n +$start_line  $LOG_REMOTE_ALERT>$TEMP_PATH"/ora-alert.xml"
        cat $LOG_REMOTE_ALERT|wc -l>$TEMP_PATH"/ora-alert-var.txt"

elif [ $line_var_now -lt $line_var_old ]; then
        start_line=1;
        echo $start_line;
        tail -n +$start_line  $LOG_REMOTE_ALERT>$TEMP_PATH"/ora-alert.xml"
        cat $LOG_REMOTE_ALERT|wc -l>$TEMP_PATH"/ora-alert-var.txt"
else
        echo "have no change"
fi

如果是空檔案 則  blabla     -s為如果有內容

#!/bin/bash
if [ ! -s 123.txt ];then
        echo "is empty!"
fi

變數操作:

將命令結果複製給變數:以ls命令為例

a=$(ls -l)  

echo $a

a=($(ls -l))返回結果以陣列的形式賦值給變數

echo $a 預設a[0]