千家信息网

从一个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表示没有错误



脚本 参数 变量 条件 错误 代表 信息 函数 命令 文件 语句 长度 输出 成功 全局 文章 更多 注释 用户 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 广州为想互联网科技有限公司 互联网科技网 新华互联网科技学校 科技赋能下的互联网金融 互联网金融 金融科技 智网互联网科技 腾讯科技 互联网女皇 奇士达互联网科技 互联网科技英文翻译 滨湖区互联网智能科技产品供应 互联网巨头投资的硬核科技 央行互联网金融科技公司 团飞科技与伯堂互联网服务平台 互联网科技与大数据专业 996高科技互联网公司 郑州欣桑互联网科技有限公司 广西科技产业互联网是什么 互联网公司属于科技吗 互联网科技和医药行业 互联网科技公司的优势 金融科技 互联网金融 成都仁贤领冠互联网科技有限公司 济南和联互联网科技有限公司 南山科技园互联网公司有哪些 互联网科技公司实习生 黑云互联网科技有限公司 互联网科技股为什么大涨 银川新华互联网科技学校是国营吗 恒生科技互联网指数十大成分股
0