从一个linux脚本中学习bash shell
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,以下是一个resin启动脚本,其中可以学到很多bash shell的知识点#!/bin/sh // bash shell脚本## Linux startup script for Resin //#注
千家信息网最后更新 2025年01月24日从一个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安全错误
数据库的锁怎样保障安全
公司软件开发条件
最新版云服务器搭建pi节点
荆门网络安全工程师
网络安全法 实施
互联网科技试题
巴中ftp服务器
宿城区个性化网络技术价格查询
哈尔滨应用软件开发一般要多少钱
论高数和计算机网络技术的关系
我的世界服务器买房
连锁餐饮管理软件开发
用几个数据库
英雄联盟外国服务器
14个数据库技术
栾城软件开发项目管理在线咨询
dos进入数据库
mysql创建职工数据库
会员和数据库设计哪个好
舟山财务软件开发哪家好
北京电脑软件开发哪家好
撤销网络安全等保测评证书
计算机网络技术的云计算
武汉游戏软件开发培训学校
壮志凌云下载软件开发
徐州企业软件开发供应
广州饭堂智慧餐饮软件开发
物理服务器在线迁移
苏州第三方软件开发如何收费
codesoft软件开发商
项目管理规范软件开发