1、怎么理解shell并发:当我们在执行一个for循环时,假设这个for循环需要循环500次,每循环一次就需要1秒,当这个for循环的脚本执行完毕时,就需要500秒,这样看效率有些低(尤其在量级高的时候,会更明显),所以我们需要shell脚本的for循环无论循环多少次,让它们同时执行,不需要按顺序循环,这就是shell脚本的并发。2、如何实现shell脚本并发:实现非常简单,就是在循环体的{}后面加上一个&符号,代表每次循环体的命令都放入...
shell脚本
shell的介绍Shell是一种脚本语言,又是一种命令语言。可以通俗一点来讲,Shell脚本就是一系列命令的集合,可以在Unix/linux上面
直接使用,并且直接调用大量系统内部的功能来解释执行程序把一些重复性工作交给shell做,来实现自动化运维。Shell 虽
然没有C/C++、Java、Python等强大,但也支持了基本的编程元素。例如:if、for、while等循环,还有变量、数组、字符
串、注释、加减乘除逻辑运算等
在写脚本的时候出现了语法错误,但运行结果正确。
脚本中报错的行为:for (( i=0; i<=$line1; i=i+1 )) do if [ $(echo "${R12S[i]} < 3" |bc) -eq 1 ] && [ $(echo "${R23S[i]} > 3"|bc) -eq 1 ]\ && [ $(echo "${R13S[i]} > 3"|bc) -eq 1 ]; then P1=P1+1 elif [ $(echo "${R12S[i]} > 3" |bc) -eq 1 ] && [ $(echo "${R23S[i]} > 3" |bc) -eq 1 ]\ && [ $(echo "${R13S[i]} < 3"|bc) -eq 1 ]; then P2=P2+1 elif [ $(echo "${R...
Grep命令
1、基本正则表达式实例——查找特定字符
这里我们就以存放本机所有用户的/etc/passwd文件做实例
Demo1
[root@localhost ~]# grep -n "root" /etc/passwd //-n表示显示行号
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
2、基本正则表达式实例——查找集合字符
有重复的字符时,可使用“[ ]”来进行集合匹配,每次只匹配“[ ]”中的一个字符。
Demo2
[root@localhost ~]# gre...
文章目录3) 显示用户信息配置文件中uid大于500的用户名及uid信息并在开头显示“用户名 UID”字样,在结尾显示“the over"1) 给文件结尾 添加信息2) 统计 /etc/services 文件中的空行的数量1. awk 脚本拥有的形式2. 正则表达式3. 关系表达式4. 组合的Pattern(模式)5. Pattern1,Pattern26. BEGINa) 给文件开头添加信息b) 取eth0的ip地址awk工作的三个步骤awk中的各种模式详解7. ENDawk工作的三个步骤读:从文件、管道或标准输入中...
每次发打包好项目后都需要手动重启项目,写个Shell脚本一键重启项目
Shell 脚本
#!/bin/bashwhile getopts "n:p:" arg
docase $arg inn)echo "NAME's arg:$OPTARG"NAME=$OPTARG;;p)echo "PORT's arg:$OPTARG"PORT=$OPTARG;;esac
donePROCESS=echo | lsof -i TCP:$PORT | grep LISTEN | awk '{print $2}'
if [ $PROCESS ]; then
kill -9 $PROCESS
echo kill $NAME:$PROCESS, restart
fi
cd jenkins
cp jar/.tmp/$NAME-0.0.1-SNAPSH...
目前出现了一个问题,当我独自用shell脚本执行启动springBoot时 就可以注册到eureka上
如果用jenkins执行shell脚本时 就会出现注册不上去的情况2020-11-18 13:47:54.808 INFO 29482 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_XIANNANSHAN-USER/172.17.165.145:xiannanshan-user:8060: registering service...
2020-11-18 13:47:54.994 INFO 29482 --- [extShutdownHook] com.netflix....
来自b站学习课程https://www.bilibili.com/video/BV19t411s7Jx?p=3P3 小节[root@tz script]# ping -c1 www.baidu.com &>/dev/null && echo "baidu is up" || echo "baidu is down!"
baidu is up
&>包含正确输出和错误输出&&前面命令执行成功会返回一个参数$?,值为0,执行不成功值为非0
Shell脚本-流程控制语句一. if条件测试语句1. if 单分支结构2. if 双分支结构3. if条件多分支二、for条件循环语句三、while 条件循环语句四、case 条件测试语句补充一些常用的关键字:
编写shell脚本通常少不了流程空语句,虽然简单,还是梳理一下吧。
一. if条件测试语句
1. if 单分支结构举例:
判断/media/cdrom 文件是否存在,若存在就结束条件判断和整个 Shell 脚本,反之则去创建这个目录:
[root@linuxprobe ~]# vim mkcdro...
自定义函数可以有效简化脚本编写,避免重复编写大量的相同代码。
一、理解
自定义函数,可以理解为一种在脚本内部自定义的功能性语句。其他脚本语句可任意调用此函数,从而简化代码数量。
二、自定义函数格式格式一:
function func_name ()
{statement1statement2....statementn
}
格式二:
func_name ()
{statement1statement2....statementn
}说明:两种格式均可,可以带function func_name ()定义,也可以直接func_name () 定...
题目要求
写一个支持选项的增加或删除用户的shell脚本,具体要求如下:
1. 只支持三个选项:--del,--add,--help,输入其他选项报错。
2. 使用--add时,需要验证用户名是否存在,存在则反馈存在,且不添加。 不存在则创建该用户,需要设置与该用户名相同的密码。
3. 使用--del时,需要验证用户名是否存在,存在则删除用户及其家目录。不存在则反馈该用户不存在。
4. --help选项反馈出使用方法。
5. 能用echo $?检测脚本执行情况,成...
基于sparksql调用shell脚本运行SQL,sparksql提供了类似hive中的 -e , -f ,-i的选项1、定时调用脚本#!/bin/sh
# upload logs to hdfs yesterday=`date --date=‘1 days ago‘ +%Y%m%d` /opt/modules/spark/bin/spark-sql -i /opt/bin/spark_opt/init.sql --master spark://10.130.2.20:7077 --executor-memory 6g --total-executor-cores 45 --conf spark.ui.port=4075 -e "insert overwrite table st.stock_realtime_analy...
一、shell是什么shell 是命令解释器,操作系统最外层,负责与用户直接对话,把用户的命令直接给操作系统,交互对话 shell 解释型语言,动态二、shell脚本是什么linux命令的集合,组合命令1.#!/bin/bash 告诉脚本使用哪种命令解释器
2.#在shell中表示注释
3.shell一般以.sh结尾创建shell的步骤1.创建文件2.修改权限,chmod u+x 文件路径3.检查语法错误4.执行 ./文件执行方式1.cd 路径,./文件名 (注意权限)2.sh 具体路径 (可以...
自增自减操作
用let命令可以实现自增自减的命令,不需要$符号:
#!/bin/bashset -en=100let n++echo $n还可以实现自增自减指定的值:
#!/bin/bashset -en=100let n+=10echo $n$[]操作符
和let一样,$[]操作符可以用于整型计算,并且也不需要$符号
#!/bin/bashset -en=100n=$[n + 1]echo $n$(())操作符
和$[]操作符类似。
#!/bin/bashset -en=100n=$((n + 1))echo $nexpr命令和bc命令
两者都可以对表达式进行计算,但expr不能对浮点...
说明:使用的是7.3.0版本进行演示的
#!/bin/bashecho "创建工作目录"
/usr/bin/mkdir -p /opt/workBASE_HOME=/opt/workecho "切换到/opt/work目录下"
/usr/bin/cd ${BASE_HOME}echo "根据输入版本不同创建相应的目录,例如:7.3.0"
read type
echo "您输入的版本是${type}"TYPE_HOME=/opt/work/${type}TAG="v${type}"/usr/bin/mkdir -p ${TYPE_HOME}/{build/src,install,src}echo "安装wget,git"
yum -y install wget gitecho "下载...