从一个linux脚本中学习bash shell
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,以下是一个resin启动脚本,其中可以学到很多bash shell的知识点#!/bin/sh // bash shell脚本## Linux startup script for Resin //#注
千家信息网最后更新 2025年12月02日从一个linux脚本中学习bash shell以下是一个resin启动脚本,其中可以学到很多bash shell的知识点
#!/bin/sh // bash shell脚本
#
# Linux startup script for Resin //#注释
# chkconfig: 345 85 15
# description: Resin is a Java Web server.
# processname: wrapper.pl
#
# To install, configure this file as needed and copy init.resin
# to /etc/rc.d/init.d as resin. Then use "# /sbin/chkconfig resin reset"
#
JAVA_HOME=/usr/local/java/jdk // =号赋值
RESIN_HOME=/usr/local/resin
export JAVA_HOME RESIN_HOME // export 定义全局变量
JAVA=$JAVA_HOME/bin/java // $ 代表变量
#
# If you want to start the entire Resin process as a different user,
# set this to the user name. If you need to bind to a protected port,
# e.g. port 80, you can't use USER, but will need to use bin/resin.
#
USER=
#
# Set to the server id to start
#
#SERVER="-server app-a"
#
ARGS="-resin-home $RESIN_HOME $SERVER"
if test -r /lib/lsb/init-functions; then // 判断语句 test -r /lib/lsb/init-functions 条件文件存在并可读
. /lib/lsb/init-functions // . 代表源 同source /lib/lsb/init-functions
else //如果不符合上面的条件
log_daemon_msg () { //函数
if [ -z "$1" ]; then // -z "$1" 变量$1长度为0 // $1 脚本执行时传过来的第一个参数
return 1 //返回
fi
if [ -z "$2" ]; then
echo -n "$1:" // -n 参数 输出不换行
return
fi
echo -n "$1: $2"
}
log_end_msg () {
[ -z "$1" ] && return 1 // [ -z "$1" ]为真,执行 return 1
if [ $1 -eq 0 ]; then //比较,-eq等于
echo " ."
else
echo " failed!"
fi
return $1
}
fi
case "$1" in //case 选择语句
start) //脚本第一个参数为start
log_daemon_msg "Starting resin" //调用函数,传递参数
if test -n "$USER"; then //条件:变量USER长度不为0
su $USER -c "$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start" 1>/dev/null 2>/dev/null //su 以其它用户执行 -c执行命令后恢复身份
else
$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start 1>/dev/null 2>/dev/null //1>dev/null 执行正常信息输出到空文件 2>错误信息
fi
log_end_msg $? // $? 上一条命令执行的结果 0表示成功,更多请查看其它文章
;;
stop)
log_daemon_msg "Stopping resin"
if test -n "$USER"; then
su $USER -c "$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS stop" 1>/dev/null 2>/dev/null
else
$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS stop 1>/dev/null 2>/dev/null
fi
log_end_msg $?
;;
restart)
$0 stop //$0 本脚本名
$0 start
;;
*) //除start stop restart外
echo "Usage: $0 {start|stop|restart}"
exit 1 //1表示有错误
esac
exit 0 //0表示没有错误
#!/bin/sh // bash shell脚本
#
# Linux startup script for Resin //#注释
# chkconfig: 345 85 15
# description: Resin is a Java Web server.
# processname: wrapper.pl
#
# To install, configure this file as needed and copy init.resin
# to /etc/rc.d/init.d as resin. Then use "# /sbin/chkconfig resin reset"
#
JAVA_HOME=/usr/local/java/jdk // =号赋值
RESIN_HOME=/usr/local/resin
export JAVA_HOME RESIN_HOME // export 定义全局变量
JAVA=$JAVA_HOME/bin/java // $ 代表变量
#
# If you want to start the entire Resin process as a different user,
# set this to the user name. If you need to bind to a protected port,
# e.g. port 80, you can't use USER, but will need to use bin/resin.
#
USER=
#
# Set to the server id to start
#
#SERVER="-server app-a"
#
ARGS="-resin-home $RESIN_HOME $SERVER"
if test -r /lib/lsb/init-functions; then // 判断语句 test -r /lib/lsb/init-functions 条件文件存在并可读
. /lib/lsb/init-functions // . 代表源 同source /lib/lsb/init-functions
else //如果不符合上面的条件
log_daemon_msg () { //函数
if [ -z "$1" ]; then // -z "$1" 变量$1长度为0 // $1 脚本执行时传过来的第一个参数
return 1 //返回
fi
if [ -z "$2" ]; then
echo -n "$1:" // -n 参数 输出不换行
return
fi
echo -n "$1: $2"
}
log_end_msg () {
[ -z "$1" ] && return 1 // [ -z "$1" ]为真,执行 return 1
if [ $1 -eq 0 ]; then //比较,-eq等于
echo " ."
else
echo " failed!"
fi
return $1
}
fi
case "$1" in //case 选择语句
start) //脚本第一个参数为start
log_daemon_msg "Starting resin" //调用函数,传递参数
if test -n "$USER"; then //条件:变量USER长度不为0
su $USER -c "$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start" 1>/dev/null 2>/dev/null //su 以其它用户执行 -c执行命令后恢复身份
else
$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start 1>/dev/null 2>/dev/null //1>dev/null 执行正常信息输出到空文件 2>错误信息
fi
log_end_msg $? // $? 上一条命令执行的结果 0表示成功,更多请查看其它文章
;;
stop)
log_daemon_msg "Stopping resin"
if test -n "$USER"; then
su $USER -c "$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS stop" 1>/dev/null 2>/dev/null
else
$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS stop 1>/dev/null 2>/dev/null
fi
log_end_msg $?
;;
restart)
$0 stop //$0 本脚本名
$0 start
;;
*) //除start stop restart外
echo "Usage: $0 {start|stop|restart}"
exit 1 //1表示有错误
esac
exit 0 //0表示没有错误
脚本
参数
变量
条件
错误
代表
信息
函数
命令
文件
语句
长度
输出
成功
全局
文章
更多
注释
用户
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
武汉做分布式存储服务器
网络安全三级登保拓扑图怎么画
赛灏互联网科技有限公司
在创建数据库之前应该做什么
数据库中添加原始数据
正规软件开发服务电话
软件开发的阶段安排
qt软件开发素材
多维度架构之数据库安全
静姿网络技术有限公司
湖南梁音互联网科技专利产品
网络安全工作个人先进事迹
济南软件开发 小程序
咸阳市软件开发公司电话
长沙俊业软件开发有限公司
有什么免费的高速服务器
雪城大学网络安全专业
数据库自定义分库分表规则
阿里拍卖后台数据库怎么找
软件开发工程师年终总结展望
有钱还互相众筹还款软件开发
小型机x86服务器
游戏数据库密码一般在哪里
闵行区综合软件开发信息推荐
tbc怀旧服最新服务器人口排名
咸阳市软件开发公司电话
数据库报668
天天飞车关服务器
国外网络安全监管机构
建立研究数据库意义