shell脚本

简述

标志:#! 目的告诉系统后面的路径文件以那种脚本来执行,有#! 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是一些命令的集合

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,393评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,746评论 0 10
  • 解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止【后台运行程序】 问题描述:当SSH远程连接到服...
    Nazarite_0141阅读 273评论 0 0
  • 1.简介: HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最...
    书虫大王X阅读 384评论 0 1
  • 带团队就是带野心、带欲望、 带状态;企业说到底是人,管理说到底是借力。失败的 领导者以其一己之力解决众人问题,成功...
    真诚的家具人阅读 242评论 0 0