实例1 hello shell
创建并编辑脚本
创建脚本
touch helloshell.sh
脚本内容
#!/bin/bash
# 声明使用的shell种类
echo "hello shell"
# 输出 hello shell
为脚本添加 x 权限
chmod +x helloshell.sh
执行脚本
./helloshell.sh
执行结果
详解
- 执行脚本,脚本要有 x 权限(即执行权限)
- 要使用./ + 脚本名 。不加表示去PATH目录下寻找,加上表示当前目录下寻找
实例 maven 批量打包实例
脚本源码
#!/bin/bash
# 首先获取一下当前的工作目录
presentPath=`pwd`
echo "当前目录 $presentPath"
# 遍历 需要打包的目录
# 变量所有子目录(仅仅遍历目录)子目录下都有pom.xml
# 循环时 catalog 表示当前目录名称
for catalog in `ls ./ -F |grep "/$"`;do
# 进入 需要打包的目录
cd $presentPath"/"$catalog
# 等待一秒,如果目录没有进入就,执行了打包,会报错
sleep 1
# 执行打包
mvn package
# 结束 do 为开始
done
# 再次遍历 包打包完毕的jar包批量拷贝出去来
for catalog in `ls ./ -F |grep "/$"`;do
# 通过 find 命令匹配 打包的jar包
file_name=`find $presentPath"/"$catalog"target" -name "*.jar"`
echo "查询到了jar包 : $file_name "
# 通过cp命令 拷贝出jar打破指定目录
cp -rf $file_name $presentPath"/jars/"
done
详解
for 循环
for 循环 分割字符串默认为 空白(是空白,不是空格)。
查询子目录(仅查询目录)
ls ./ -F |grep "/$"
grep 匹配了/ 目录是有/的
变量声明
presentPath=`pwd`
声明了一个变量,当前路径,并且 使用 pwd 命令获取当前路径,赋值给presentPath。
" ` "符号不是单引号,是键盘1 左边的。
变量拼接
cd $presentPath"/"$catalog