变量名和等号之间不能有空格
your_name="runoob.com"
在变量前加$符号(必选),使用花括号确定边界(可选)
echo ${your_name}
将/etc目录的文件名循环出来
for file in `ls /etc` 或 for file in $(ls /etc)
myUrl="https://www.google.com" # readonly myUrl myUrl="https://www.runoob.com" #此处变量修改失败
$#:shell脚本执行的时候传递参数的个数 $?:上一条命令执行成功之后的返回值 $@:所有的参数 $*:所有的参数 $1 $2 $3:第一个参数 第二个参数 第三个参数
1、获取一个月前的当天 startDay=`date -d"$now last month" +%Y%m%d` 2、获取本月第一天 nowdate=`date +%Y%m01` 3、获取上个月第一天 startdate=`date -d"$nowdate last month" +%Y%m%d` 4、获取上个月最后一天 enddate=`date -d"$nowdate last day" +%Y%m%d` 5、获取今天 log=$(date -d "now" +%Y-%m-%d) echo ${log} 6、获取昨天(n天前同理) log2=$(date -d "1 day ago" +%Y-%m-%d) echo ${log2} 7、获取具体日期的前几天 log4=$(date -d"15 day ago 2017-04-16" +%Y-%m-%d) echo ${log4} 8、获取当前时间 echo "`date "+%Y-%m-%d %H-%M-%S"`---程序执行完成!---" 9、截取日期字符串 month=${startDay:0:6}
#遍历上个月的每一天 while (( $startdate <= $enddate )) do echo $startdate startdate=`date -d "+1 day $startdate" +%Y%m%d` done
获取传参
#!/bin/bash day6 = $1 /usr/bin/spark-submit \ --master yarn \ --deploy-mode cluster \ --executor-memory 8G \ --executor-cores 2 \ --num-executors 100 \ --driver-memory 16G \ --driver-cores 4 \ --name SYSK_BadEciCombine \ --class com.migu.scala.combine.BadEciCombine \ /home/laizhengyang/new_2.jar \ $day10 \ $day6 if [ $? == 0 ]; then echo "`date "+%Y-%m-%d %H:%M:%S"`---质差小区合并作业:$day10 $day6,执行完成!" hadoop fs -du -h /home/sysk_test/output_eci/badEci fi elif [ 判断语句 ];then 处理语句 else echo "不满足质差关联的结束时间:$day6" fi
hdfs指定目录排序,获取最新文件,按‘/’分割取第六个位置的文件名
day_time=`hadoop fs -ls -t -C /home/sysk_test/output/user_order | head -1 | cut -d '/' -f 6` echo $day_time
1、crontab
2、ftp上传下载:mput mget ,prompt off关闭主动模式
3、查找字符串:grep -rnR "target" *
4、文件大小:du -lh --max-depth=1
1、Shell获取上一个月、星期的时间范围 - 北京流浪儿 - 博客园 (cnblogs.com)