Shell脚本的编写
主要学习链接:Shell 学习
一、Shell 脚本传递日期参数的处理
Linux 命令:
bash test.sh "2021-08-09 20:00:00"
Shell脚本片段:
if [ -n "$1" ] ;then
echo "you have input a date $1"
BASETIME=$(date -d "$1" +%Y-%m-%d" "%H:%M:%S)
else
echo "you have not input a date, will use $BASETIME as default date!"
fi
二、Shell字符串的截取
学习链接:Shell编程
1)从字符串左边开始计数
如果想从字符串的左边开始计数,那么截取字符串的具体格式如下:
(注意没有空格)
${string:start:length}
其中,string 是要截取的字符串,start 是起始位置(从左边开始,从 0 开始计数),length 是要截取的长度(省略的话表示直到字符串的末尾)
例如:
url="c.biancheng.net"
echo ${url:2:9}
结果为
biancheng
三、Shell中脚本的参数传递的方式
学习参考:shell中脚本参数传递的两种方式
采用$0,$1,$2…等方式获取脚本命令行传入的参数,值得注意的是,$0 获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用 ${10},${11},…才能获取到参数,但是一般很少会超过10个参数的情况。
1.1 示例:新建一个test.sh的文件
#!/bin/bash
echo "脚本$0"
echo "第一个参数$1"
echo "第二个参数$2"
在shell中执行脚本,结果如下
$ ./test.sh 1 2
#shell中将会输出
脚本./test.sh
第一个参数1
第二个参数2
四、shell脚本如果不存在就创建文件夹
date_str=`date +%Y%m%d`
dir=/root/crontab/log
function run_mkcurrent_dir(){
my_dir="$dir/$date_str"
if [ ! -d "$my_dir" ]; then
echo "创建文件夹"
mkdir $my_dir
else
echo "文件夹已存在"
fi
}
run_mkcurrent_dir;
五、Shell脚本中日期的计算
学习参考:Shell脚本中日期的计算
六、Linux中执行shell脚本的4种方法总结
本人使用方法:
直接使用 bash 或 sh来执行 bash shell 脚本
代码如下
cd /data/shell
bash hello.sh
七、查看shell使用的是bash还是zsh
echo $0