shell脚本

2019-08-29  本文已影响0人  小样_简书

简述

标志:#! 目的告诉系统后面的路径文件以那种脚本来执行,有#! bin/sh(标准)和#!bin/bash (替代)
扩展名:.sh(扩展名不影响脚本执行)
执行文件:chmod +x ./test.sh #使该脚本文件具有执行权限
                  ./test.sh                  #直接执行脚本
注释:##之后的一行都为注释内容,该行会被解释器忽略
变量:定义变量  varible='test'       #变量名与等号之间不能有空格,必须紧密相连,变量后不能有;
使用变量  ${varible}            #使用变量时,一般用${}括起来
遇到非真返回的语句,就结束脚本执行

常用操作

字符串操作  t_string='I\'m a good programmer'
求长度: ${#t_string}# 21
字符串截取:${t_string:2:5} # m a
数组   t_array=(item1 item2 item3)# 定义数组用圆括号包起来,元素之间采用空格分隔,只能定义一维数组
            t_array[0]=item1# 也可单独进行变量赋值,复制下标可以不连续,且范围不限制
                    读取数组的值方法:${数组名[下标]} ${t_array[0]}#下标的值小于10时,正常,大于10时娶不到              对应数组的值,需要用${10}扩起来使用
            读取数组所有的值:${t_array[@]}
            获取数组的长度:${#t_array[@]}#和字符串的获取方法相
alias 为常用或名字较长的命令,指定别名
sleep 延时操作

输出命令

echo:输出命令(自动添加换行)

参数 -e表示开启转义

                    \c  表示不换行

printf: printf(format-string, [arguments···])

format-string 格式控制字符串

   [ arguments ···] 参数列表

set命令

set命令的实质或目的就是为了使脚本运行跟安全和健壮,便于排查异常,如下:

set -u : 表示使用未初始化的变量时,自动推出;相同作用的命令有set -o nounset#shell脚本一般在变量未定义前使用,不会报错

set -x : 表示在脚本命令运行之前,先输出执行脚本命令本身;相同命令set -o xtrace# 用于脚本调试

set -e : 表示若有出现返回非真的命令语句,就直接退出该脚本,尽早捕获错误;相同命令set -o errexit# 一般位于脚本的开始位置,可以通过set -e 表示开启该模式,set +e表示关闭该选项

set -o pipefail : 和set -e的作用有点类似,都是判断脚本命令,但是后者遇到 用 | & 这种复合的管道,不能达到理想效果,一般shell的返回值都以最后一个命令的返回值为准,而后者是指只要其中的一个子命令失败,那么认为整个管道就失败了,脚本终止;

一般来说,我们的脚本都是混合使用set命令的,如set -xe | set -uxe

sed命令

sed(stream editor) 流编辑器,配合正则表达式使用,进行替换

替换语法:标准格式为 sed 's/pattern/replace_string/' file# pattern为正则表达式,replace_string为要替换的字符 file为目标文件

我们canary项目中,实际案例:sed -i'' "s/\"max\"/\"$CPU_NUM\"/g" process.json

其中:

i 用于直接修改原file

replace_string/后面的标示分类:没有 => 表示只替换匹配的第一个

                                                      2       => 表示替换第二个

                                                      g       => 表示替换所有

                                                      2g     =>表示从n处开始替换

curl命令

curl命令是一个利用URL规则在命令行下工作的文件传输工具,常用为下载工具

基本用法: curl url > index.html

xx代码示例:

【curl -s -o-https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh| bash】

【curl --fail --retry 3 -F "name=myfe/canary" -F "file=@update.tar.gz"filename】

tar命令

tar命令实质进行打包和解包文件的

标准语法tar [params] modifiedFile originFile  

tar -czf update.tar.gz * 将所有文件都打包到update.tar.gz文件中

关键字

shell脚本上传图片

1、touch uoload.sh创建upload.sh文件
2、vi upload.sh编辑upload.sh文件
3、cat upload.sh查看upload.sh文件
4、rm -rf upload.sh删除upload.sh文件
5、scp /文件path 服务器地址 上传到远程服务器
6、bash upload.sh执行代码

总结:shell是一些命令的集合

上一篇下一篇

猜你喜欢

热点阅读