从一个linux脚本中学习bash shell
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,以下是一个resin启动脚本,其中可以学到很多bash shell的知识点#!/bin/sh // bash shell脚本## Linux startup script for Resin //#注
千家信息网最后更新 2026年11月01日从一个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安全错误
数据库的锁怎样保障安全
深圳市人人互联网科技有限公司
广州为想互联网科技有限公司
互联网科技网
新华互联网科技学校
科技赋能下的互联网金融
互联网金融 金融科技
智网互联网科技
腾讯科技 互联网女皇
奇士达互联网科技
互联网科技英文翻译
滨湖区互联网智能科技产品供应
互联网巨头投资的硬核科技
央行互联网金融科技公司
团飞科技与伯堂互联网服务平台
互联网科技与大数据专业
996高科技互联网公司
郑州欣桑互联网科技有限公司
广西科技产业互联网是什么
互联网公司属于科技吗
互联网科技和医药行业
互联网科技公司的优势
金融科技 互联网金融
成都仁贤领冠互联网科技有限公司
济南和联互联网科技有限公司
南山科技园互联网公司有哪些
互联网科技公司实习生
黑云互联网科技有限公司
互联网科技股为什么大涨
银川新华互联网科技学校是国营吗
恒生科技互联网指数十大成分股