Shell if

#Brief if,else,fi语句的语法。

if [ expression ]
then
   Statement(s) to be executed if expression is true
else
   Statement(s) to be executed if expression is not true
fi

#也成一行则需要用;
if test -f "$FILE"; then echo "true"; fi

#Command

遍历文件,生成字符串。

FILENAME='query.txt'
i=0
dt_start='2017-10-24' #Shell变量赋值语句不能有空格,所以不能隔开空格
dt_end='2017-11-20'
temp=''
while read LINE;do
  echo "Query is $LINE"
  if [ $i == 0 ] #expression和方括号([ ])之间必须有空格,否则会有语法错误
  then
    temp+="'$LINE'" #+= operator可以不断加入字段
  else   
    temp+=", '$LINE'"  
  fi
  ((i++))
done < $FILENAME
echo "Total Query is $temp"

hive -hivevar dt_start=$dt_start -hivevar dt_end=$dt_end -hivevar "query=$temp" -f search_count_period.sql >> "$dt_start-$dt_end.txt"

检测文件是否存在

FILE="data_ltr_20210623.txt"
if test -f "$FILE"; then #Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试
# -f 文件名	如果文件存在且为普通文件则为真
    echo "$FILE exists."
fi

Last updated