Linux的bash命令语法

可用点

#!/bin/bash
# 文件要以上面开始,.sh结尾的文件不需要
# 赋权文件可执行权限
chmod +x <fileName>
# 获取java jar包启动的进程id
ps -ef | grep *.jar | grep -v grep | awk '{print $2}'

shell变量

变量命令规则:

  1. 只能包含字母、数字、下划线;
  2. 不能以数字开口,可以包含数字;
  3. 不能使用Shell的关键字作为变量名
  4. 使用大写字母表示常量;
  5. 变量赋值不能使用空格,例如:PID=“pid”;

使用变量

#!/bin/bash
PID="pid"
P1=`ps -ef | grep *.jar | grep -v grep | awk '{print $2}'` # 1.使用命令执行结果作为变量
P1=`ps -ef | grep *.jar | grep -v grep | awk "{print $2}"` # 1.使用命令执行结果作为变量
P2="`ps -ef | grep *.jar | grep -v grep | awk '{print $2}'`" # 1.使用命令执行结果作为变量
PID=$(ps -ef | grep *.jar | grep -v grep | awk '{print $2}') # 2.# 使用变量
echo $PID
echo "P1=$PID"
echo 'P2=$PID'
echo 'P3=''$PID' # 要成对
echo ${PID}# 设置只读
only_read="Java"
readonly only_read
only_read="python" #会有提示# 删除变量
unset only_read
echo ${only_read}

在这里插入图片描述

变量类型

# 字符串变量
s1="Hello World"
s2='Hello World'# 整数变量
declare -i i1=128# 数组变量
array_example=(1 2 3 4 5)
declare -A accociative_array
accociative_array["name"]="zs"
associative_array["age"]=18# 读取环境变量
echo $JAVA_HOME

流程语句

if

#!/bin/sh
if [ condition ]; then# ...
else# ...
fi
#!/bin/sh

运算符

#!/bin/sh###
SERVICE_NAME="lgsa-portRelease-mgr"ENVFILE="../env"PIDFILE="pid"checkRunning(){if [ -f "$PIDFILE" ]; thenif  [ -z "`cat $PIDFILE`" ];thenecho "ERROR: Pidfile '$PIDFILE' exists but contains no pid"return 2fiPID="`cat ${PIDFILE}`"RET="`ps -p "${PID}"|grep java`"if [ -n "$RET" ];thenecho "${RET}"return 1;elsereturn 0;fielsereturn 0;fi
}status(){if ( checkRunning );thenPID="`cat $PIDFILE`"echo "'$SERVICE_NAME' is running (pid '$PID')"exit 0fiecho "'$SERVICE_NAME' not running"exit 1
}#启动方法
start(){if ( checkRunning );thenPID="`cat $PIDFILE`"echo "INFO: Process with pid '$PID' is already running"exit 0fiENVIRONMENT="`cat ${ENVFILE}`"java -jar -Xms64M -Xmx512M -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5105 -Dspring.config.location=config-${SERVICE_NAME}/application-${ENVIRONMENT}.yml -Dlogging.config=config-${SERVICE_NAME}/log4j2.xml  ${SERVICE_NAME}-0.0.1-SNAPSHOT.jar --spring.profiles.active=${ENVIRONMENT} > console.log 2>&1 &echo $! > "${PIDFILE}";
}
#停止方法
stop(){if ( checkRunning ); thenPID="`cat ${PIDFILE}`"echo "INFO: sending SIGKILL to pid '$PID'"kill -KILL $PIDRET="$?"rm -f "${PIDFILE}"return $RETfiecho "INFO: not running, nothing to do"return 0
}show_help() {cat << EOF
Tasks provided by the sysv init script:stop            - terminate instance in a drastic way by sending SIGKILLstart           - start new instancerestart         - stop running instance (if there is one), start new instancestatus          - check if '$SERVICE_NAME' process is running
EOFexit 1
}# show help
if [ -z "$1" ];thenshow_help
ficase "$1" instatus)status;;restart)if ( checkRunning );then$0 stopechofi$0 start$0 status;;start)start;;stop)stopexit $?;;*)
esac

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/247905.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

银行数据仓库体系实践(6)--调度系统

调度系统是数据仓库的重要组成部分&#xff0c;也是每个银行或公司一个基础软件或服务&#xff0c;需要在全行或全公司层面进行规划&#xff0c;在全行层面统一调度工具和规范&#xff0c;由于数据类系统调度作业较多&#xff0c;交易类系统批量优先级高&#xff0c;为不互相影…

uniapp对接微信APP支付返回requestPayment:fail [payment微信:-1]General errors错误-全网总结详解

一、问题描述 uniapp对接微信APP支付&#xff0c;本来是很简单的一件事&#xff0c;后端本来就是好的&#xff0c;只要填一些参数就行了&#xff0c;搞了我一晚上&#xff0c;主要卡在uniapp这边&#xff0c;拉起支付的时候&#xff0c;一直提示以下错误&#xff1a; {"er…

js数组/对象的深拷贝与浅拷贝

文章目录 一、js中的深拷贝和浅拷贝二、浅拷贝1、Object.assign()2、利用es6扩展运算符&#xff08;...&#xff09; 二、深拷贝1、JSON 序列化和反序列化2、js原生代码实现3、使用第三方库lodash等 四、总结 一、js中的深拷贝和浅拷贝 在JS中&#xff0c;深拷贝和浅拷贝是针对…

数学电路与电子工程1(MEE)—— 锁存器和触发器

1 逻辑综合 1.1 DCB/DEC转换器 下图是一个74HC42集成电路的逻辑图&#xff0c;它是一个二进制编码的十进制&#xff08;BCD to Decimal&#xff09;转换器&#xff0c;也称为DCB/DEC转换器。这种类型的IC通常用于将4位二进制数&#xff08;BCD&#xff09;转换为十进制输出。 …

PHP文件相关函数大总结

PHP中与文件相关的函数&#xff1a; 以下示例均以读取example.txt为例&#xff1a; example.txt的内容&#xff1a; this is a txt. 这是一个文件 1 .使用 file_get_contents 读取整个文件内容&#xff1a; $fileContent file_get_contents(example.txt); echo $fileContent…

Flink问题解决及性能调优-【Flink rocksDB读写state大对象导致背压问题调优】

RocksDB是Flink中用于持久化状态的默认后端&#xff0c;它提供了高性能和可靠的状态存储。然而&#xff0c;当处理大型状态并频繁读写时&#xff0c;可能会导致背压问题&#xff0c;因为RocksDB需要从磁盘读取和写入数据&#xff0c;而这可能成为瓶颈。 遇到的问题 Flink开发…

MySql8的简单使用(1.模糊查询 2.group by 分组 having过滤 3.JSON字段的实践)

MySql8的简单使用&#xff08;1.模糊查询 2.group by 分组 having过滤 3.JSON字段的实践&#xff09; 一.like模糊查询、group by 分组 having 过滤 建表语句 create table student(id int PRIMARY KEY,name char(10),age int,sex char(5)); alter table student add height…

【C/C++ 01】初级排序算法

排序算法通常是针对数组或链表进行排序&#xff0c;在C语言中&#xff0c;需要手写排序算法完成对数据的排序&#xff0c;排序规则通常为升序或降序&#xff08;本文默认为升序&#xff09;&#xff0c;在C中&#xff0c;<algorithm>头文件中已经封装了基于快排算法的 st…

记录我的历程

1、2024年1月30号更新 从2024年1月22号开始复更&#xff0c;已添加20篇文章&#xff0c; 前一阶段&#xff1a;排名1502450、原力分2、粉丝3人

PGsql 解析json及json数组

创建测试数据 drop table if exists json_test; create table json_test as select 111 as id, {"nodes":{"1692328028076":{"nodeId":"1692328028076","nodeName":"测试表1","nodeType":"DATACO…

STM32 OV7725摄像头模块识别颜色物体(1)--HSL二值化和腐蚀中心算法,并用串口输出数据

目录 前言 一、摄像头采集数据流程 二、如何将图像显示到电脑上 三、图像二值化 1、什么是RGB? 2、RGB565转RGB888 I、RGB565和RGB888的区别 II、代码 3、RGB转HSL I、什么是HSL II、转换公式 III、代码 3、输出一张摄像头二值化图片 I、原理 II、代码 四、简单的物体识别 1、…

ElasticSearch搜索引擎入门到精通

ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的数据,相对于 MySQL 来说不擅长经常更新数据及关联查询。这篇文章就是为了进一步了解一下它,到底是如何做到这么高效的查询的。 在学习其他数据库的时候我们知道索引是一个数据库系统极其重要…

数字图像处理(实践篇)三十六 OpenCV-Python 使用ORB和BFmatcher对两个输入图像的关键点进行匹配实践

目录 一 涉及的函数 二 实践 ORB(Oriented FAST and Rotated BRIEF)是一种特征点检测和描述算法,它结合了FAST关键点检测和BRIEF描述子。ORB算法具有以下优势: ①实时性:能够在实时应用中进行快速的特征点检测和描述。 ②

[C++]使用纯opencv部署yolov8旋转框目标检测

【官方框架地址】 https://github.com/ultralytics/ultralytics 【算法介绍】 YOLOv8是一种先进的对象检测算法&#xff0c;它通过单个神经网络实现了快速的物体检测。其中&#xff0c;旋转框检测是YOLOv8的一项重要特性&#xff0c;它可以有效地检测出不同方向和角度的物体。…

git用法总结

以gitee为例&#xff0c;GitHub也可参考本文 创建远程仓库 在自己的gitee主页 创建本地仓库 在文件夹下&#xff0c;右键→git bash here git init添加gitignore vi .gitignoregitignore里的内容根据自己实际情况设置&#xff0c;这里举个例子 # #开头的是注释 # Prer…

Oracle篇—分区索引的重建和管理(第三篇,总共五篇)

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

写静态页面——魅族导航_前端页面练习

0、效果&#xff1a; 1、html代码&#xff1a;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

Spring Boot通过配置文件支持数据库自定义表名

直接上干货&#xff1a; 例如一个叫xxx的项目&#xff0c;yml文件里加上这段 xxxproject:db:xxxTable: xxx_dbname #自定义的数据库表名创一个Configuration类放表名和Mapper // XxxProjectAutoConfiguration.javaConfiguration MapperScan(basePackages "cn.com.xxxp…

【vue】defineModel在vue3.4中的最新用法和详解

在2023年12月28日&#xff0c;尤大发布了vue3.4版本&#xff0c;这个版本主要对一些实验性特性的改进&#xff08;比如defineModel&#xff09;&#xff0c;大量重写了模板编译器并重构了响应式系统&#xff0c;可以说是大大提升了运行速度和效率。 之前在vue3.3中defineModel…

分布式ID是什么,以美团Leaf为例改造融入自己项目【第十一期】

前言 在日常开发中&#xff0c;主键id应用是非常广泛的&#xff0c;但是当涉及到分布式系统的时候&#xff0c;往往需要使用到分布式id&#xff0c;每一个服务里面一套生成规则的不易管理&#xff0c;容易引发冲突。我的IM聊天系统中使用分布式id来生成消息唯一键,为后面幂等做…