shell之未找到命令

在写shell脚本的时候一直报错未找到命令,脚本如下:

#!/bin/bash
in_date=$1
if [ ! $in_date ]; then
yesterday=`date -d "yesterday" '+%Y%m%d'`
yesterday1=`date -d "yesterday" '+%Y-%m-%d'`
else
yesterday=$in_date
yesterday1=`date -d "$in_date" '+%Y-%m-%d'`
fi

echo $yesterday
echo $yesterday1

time1="$yesterday1 00:00:00"

echo $time1

res=999
if [ $res -le 1000 ]
then
    echo $res
    warn1="警告:" $time1 "抽取数据量小于1000,请核实!"
    echo warn1
fi
echo "警告:" $time1 "抽取" $var"条数据"

只看逻辑不看细节还真的找不到错误,在shell中=号两边没有空格是表示赋值,有空格表示比较。而且中括号也要有空格。if条件中括号里面两边要有空格,由于if条件语句中"warn1=“警告:” t i m e 2 " 抽 取 数 据 量 小 于 1000 , 请 核 实 ! " " 是 赋 值 操 作 , 所 以 time2"抽取数据量小于1000,请核实!""是赋值操作,所以 time2"1000,!"",time2左边有空格是错误的,而"echo “警告:” $time2 “抽取” $var"条数据""不是赋值操作,只是输出字符串,所以不会报错。
正确的shell脚本应该是:

#!/bin/bash
in_date=$1
if [ ! $in_date ]; then
yesterday=`date -d "yesterday" '+%Y%m%d'`
yesterday1=`date -d "yesterday" '+%Y-%m-%d'`
else
yesterday=$in_date
yesterday1=`date -d "$in_date" '+%Y-%m-%d'`
fi

echo $yesterday
echo $yesterday1

time1="$yesterday1 00:00:00"

echo $time1

res=999
if [ $res -le 1000 ]
then
    echo $res
    warn1="警告:"$time1"抽取数据量小于1000,请核实!"
    echo warn1
fi
echo "警告:" $time1 "抽取" $var"条数据"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值