千家信息网

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



脚本 参数 变量 条件 错误 代表 信息 函数 命令 文件 语句 长度 输出 成功 全局 文章 更多 注释 用户 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 武汉做分布式存储服务器 网络安全三级登保拓扑图怎么画 赛灏互联网科技有限公司 在创建数据库之前应该做什么 数据库中添加原始数据 正规软件开发服务电话 软件开发的阶段安排 qt软件开发素材 多维度架构之数据库安全 静姿网络技术有限公司 湖南梁音互联网科技专利产品 网络安全工作个人先进事迹 济南软件开发 小程序 咸阳市软件开发公司电话 长沙俊业软件开发有限公司 有什么免费的高速服务器 雪城大学网络安全专业 数据库自定义分库分表规则 阿里拍卖后台数据库怎么找 软件开发工程师年终总结展望 有钱还互相众筹还款软件开发 小型机x86服务器 游戏数据库密码一般在哪里 闵行区综合软件开发信息推荐 tbc怀旧服最新服务器人口排名 咸阳市软件开发公司电话 数据库报668 天天飞车关服务器 国外网络安全监管机构 建立研究数据库意义
0