不能随意空格
1、echo:打印信息
2、exit:用于终止脚本的执行,并返回一个退出状态码
正常退出
异常退出if [ $# -lt 1 ];then echo "参数不足" exit 1 fi
3、$0、$1、$2等
假设执行 ./test.sh a b c 这样一个命令,则可以使用下面的参数来获取一些值:
$0
对应 ./test.sh
这个值。如果执行的是 ./work/test.sh
, 则对应 ./work/test.sh
这个值,而不是只返回文件名本身的部分。
$1
会获取到 a,即 $1 对应传给脚本的第一个参数。
$2
会获取到 b,即 $2 对应传给脚本的第二个参数。
$3
会获取到 c,即 $3 对应传给脚本的第三个参数。$4
、$5
等参数的含义依此类推。
3.1、在vue中
npm run test
"test": "sh scripts/test.sh"
#!/bin/bash echo "By Kylin" zero=$0 one=$1 echo "输入了:$zero , $one "
4、if语句
fi关键词用于标记if语句结尾
可以使用[]
、[[]]
、(())
等条件表达式
都需要空格隔开,(())
除外if 判断语句一 ; then command1 elif 判断语句二; then command2 else command3 fi echo "By Kylin" one=$1 echo "输入了:$one " if [[ $one > 0 ]]; then echo "zero大于0" else echo "zero不大于0" fi
module_name=$1 module_name=$module_name vue-cli-service build file_name=【$(date +%m%d)】$module_name -fe.zip if [[ -f $file_name ]]; then rm -rf $file_name fi
zip -r $file_name ./dist
这段代码的作用是根据传入的参数 $1
,生成一个模块名称 module_name
,然后使用 Vue CLI Service
进行项目构建。接着,根据当前日期和模块名称生成一个文件名 file_name
,并检查是否存在同名的文件。如果存在,则删除该文件。最后,将 ./dist
目录下的文件压缩为一个名为 $file_name
的 ZIP
文件。 具体解释如下:
module_name=$1
: 将传入的第一个参数 $1 赋值给变量 module_name
。这个参数可能是一个模块名称,用于后续的文件命名和构建过程。
module_name=$module_name vue-cli-service build
: 使用 Vue CLI Service 构建项目。$module_name
是之前定义的模块名称,通过这个命令可以进行项目构建。
file_name=【$(date +%m%d)】$module_name-fe.zip
: 根据当前日期和模块名称生成一个文件名 file_name
。文件名的格式为 【月日】模块名称-fe.zip,其中 $(date +%m%d)
表示获取当前日期的月份和日期。
if [[ -f $file_name ]]; then
: 检查是否存在同名的文件。-f
表示判断文件是否存在,$file_name
是之前定义的文件名。
rm -rf $file_name
: 如果存在同名的文件,则使用 rm
命令删除该文件。`-rf 表示递归删除文件和目录。
zip -r $file_name ./dist
: 将 ./dist
目录下的文件压缩为一个名为 $file_name
的 ZIP 文件。-r
表示递归地将目录及其子目录中的文件都压缩进 ZIP 文件中。
5、解析日期和时间 year=`date +%Y` month=`date +%m` day=`date +%d` echo "$(date +%Y) " echo "今天是$year -$month -$day "
year=`date +%Y` month=`date +%m` day=`date +%d` hour=`date +%H` minute=`date +%M` second=`date +%S`
6、read:读取 echo "请输入你的名称" read nameecho "Hello $name "
7、测试文件 -e name 测试一个文件是否存在 -d name 测试name 是否为一个目录 -f name 测试name 是否为普通文件(而不是目录、设备文件或其他特殊类型的文件) -L name 测试name 是否为符号链接 -r name 测试name 文件是否存在且为可读 -w name 测试name 文件是否存在且为可写 -x name 测试name 文件是否存在且为可执行 -s name 测试name 文件是否存在且其长度不为0 f1 -nt f2 测试文件f1 是否比文件f2 更新 f1 -ot f2 测试文件f1 是否比文件f2 更旧
8、运算符