您的位置:首页 > 房产 > 建筑 > 网络投票怎么做_销售管理软件新技术_googleplay官网_百度自己的宣传广告

网络投票怎么做_销售管理软件新技术_googleplay官网_百度自己的宣传广告

2025/5/10 7:13:30 来源:https://blog.csdn.net/Lemon__ing/article/details/147133924  浏览:    关键词:网络投票怎么做_销售管理软件新技术_googleplay官网_百度自己的宣传广告
网络投票怎么做_销售管理软件新技术_googleplay官网_百度自己的宣传广告

目录

前言

条件测试操作

1、文件测试

2、整数值比较

3、字符串比较

4、逻辑测试

if条件语句

1:单分支if语句

 2、双分支if语句

3、多分支if语句

case分支语句

1、检查用户输出的字符类型

2、编写系统服务脚本

 

脚本文件 http-server.sh

使用说明

1. 快速启动

2. 其他操作

扩展:chkconfig 命令

chkconfig 命令详解

一、定义与功能

二、基本语法

三、运行级别(Runlevel)说明

四、核心功能详解

五、常见操作示例


前言

    经过老师的教导,我宛若醍醐灌顶,清楚了走向胜利的“那张卡牌”。(没错,我还是一个牌佬)其实很多道理... ...很多人心里都清楚。能否选择去改变,这是需要很大的勇气与耐力。这些就懒得继续聊了,就像我“老大”(以前的老师)告诉我的一样:“你凭什么将自己的思想灌输于经历各异的他人?”

    所以就这样吧,今天我们要对于Shell编程进行更详细的讲解。在之前的帖子中,我们初步的讲解了Shell编程的基本规范与相关各类变量。(如果你是第一次看到这些,对先前的知识并不了解,那么就来这里进行学习吧------→"闭关修行")

条件测试操作

    今天,我们又双叒来对于Shell的定义与作用进行讲解。可想而知,Shell对于Linux的重要性!首先 Shell 作为用户与操作系统内核交互的命令行解释器,负责解析用户输入的命令并调用系统功能‌。它既是命令语言,也是脚本编程语言,支持自动化任务管理和复杂逻辑控制‌。常见的Shell类型如下:

类型意义
Bash(Bourne Again Shell)Linux 默认 Shell,兼容 sh 并扩展了功能‌
sh(Bourne Shell)Unix 早期标准 Shell‌
zsh/csh支持更高级的交互特性(如命令补全)‌

     并且Shell编程作为Linux系统管理的组成部分,我们可以通过它强大的脚本处理能力为自动化任务提供极大的便利。在进行脚本编写时,条件语句更是不可或缺的逻辑结构(可以实现智能化和高效化)。

    如果要使Shell脚本具备一定的“智能“,首先就是如何区分不同的情况以确定执行操作。我们可以通过命令(echo $?)返回的状态值来进行判断是否执行成功。但返回值为0时,则为成功;反之则为失败或异常。

    接下来...我们将使用专门的测试命令——test命令,其可以对于特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0则成立)。格式如下:

  • test 条件表达式
  • [ 条件表达式 ]

    这两种作用完全相同,但后者更为常用。但需要注意的是:方括号为英文字符;且条件表达式之间需要至少一个空格进行分隔。

1、文件测试

    根据指定的路径名称,判断对应的是文件还是目录;也可判定文件的相应权限(r、w、x)。选项如下:

-d:测试是否为目录(Directory);
-e:测试目录或文件是否存在(Exist);
-f:测试是否为文件(File);
-r、-w、-x:测试当前用户是否有当前权限。

示例如下:

[root@localhost ~]#[ -e /media/ ]
[root@localhost ~]#echo $?    //查看前一命令的返回值
1    //由于我并未创建yum源,所以条件不成立。
2、整数值比较

    根据指定的两个整数值,判定彼此之间的关系。选项如下:

-eq:等于(Equal);
-ne:不等于(Not Equal);
-gt:大于(Greater Than);
-lt:小于(Lesser Than);
-le:小于等于(Lesser or Equal);
-ge:大于等于(Greater or Equal)。

示例如下:

例一:
[root@localhost ~]#UserNum=`who |wc -l`    //查看当前已登陆用户并列出行数
[root@localhost ~]#[ $UserNum -le 2] && echo "Too less."    //测试结果(小于等于)
Too less例二:
[root@localhost ~]#Free=$(free -m |grep "Mem: " | awk '{print $7}')
[root@localhost ~]#[ $Free -lt 1024 ] && echo ${$Free}MB
278MB
3、字符串比较

    用于检查用户输入、系统环境等是否满足条件;也可判断用户指定的参数是否符合要求。选项如下:

=:两个字符串彼此之间相同;
!=:两个字符串彼此之间不同;    //“ !”表示取反
-z:检查字符串是否为空(Zero),对于未定义或赋予空值的变量视为空串。

示例如下:

例一:
[root@localhost ~]#echo $LANG    //查看当前的语言环境
zh_CN.UTF-8
[root@localhost ~]#[ $LANG !="en.US" ] && echo "Not en.US"    //字符串测试结果(不等于)
Not en.US
例二:
[root@localhost ~]#read -p "是否覆盖现有文件(y/n)?" ACK
是否覆盖现有文件(y/n)?yes
[root@localhost ~]#[ $ACK = "yes" ] &&echo “覆盖”    //校验结果
覆盖
4、逻辑测试

    判定两个或多个之间的依赖关系。选项如下:

&&:逻辑“与”,表示而且,只有当前后两个条件都成立时,返回值才为0(成立)。//使用test命令时,可改为“-a”。
||:逻辑“或”,表示或者,只有前后两个条件之间成立一个,返回值才为0(成立)。//使用test命令时,可改为“-o”。
!:逻辑“否”,表示不,只有前后两个条件都不成立,返回值才为0(成立)。

示例如下:

[root@localhost ~]#uname -r    //查看内核版本信息
... ...        //省略信息
[root@localhost ~]#Mnum=$(uname -r |awk -F. '{print $1}')    //取主版本号
[root@localhost ~]#Snum=$(uname -r |awk -F. '{print $2}')    //取次版本号
[root@localhost ~]#[ $Mnum -ge 3 ] && [ $Snum -gt 4 ] && echo “符合要求”    //由于不符合,所以不会输出信息

if条件语句

    在上面的讲解中,其实实际使用“&&”与“||”逻辑测试便可以满足日常简单的判断并执行了。然而当需要执行的命令较多时,这种方式就会显得复杂,而“if条件语句”便是专门解决此类情况。

1:单分支if语句

结构:

if 条件测试操作then命令序列
fi

 逻辑:

if 条件测试操作——条件成立 then ——命令序列——fi 结束判断⌊____条件不成立___________________⌋
 2、双分支if语句

结构:

if 条件测试操作then命令序列else命令序列
fi

逻辑: 

if 条件测试操作——条件成立 then ——命令序列——fi 结束判断⌊____条件不成立 else___命令序列________⌋
3、多分支if语句

 结构:

if 条件测试操作 1then命令序列 1elif 条件测试操作 2then命令序列 2else命令序列 3
fi

逻辑:

if 条件测试操作 1———————条件成立 then ——————————命令序列———————————fi 结束判断⌊____elif 条件测试操作2___条件成立 then___命令序列 2_____________⌋⌊___条件不成立 else____命令序列 n____________⌋

case分支语句

    case语句可以使脚本程序的结构更加清晰、层次分明。主要适用于某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。结构如下:

case 变量值 in模式 1)命令序列 1;;模式 2)命令序列 2;;    ... ...*)默认命令序列
esac

 逻辑:

case 变量值|_模式 1____________成立__________命令序列 1________;;_________esac结束分支|______不成立___模式 2__________成立_______命令序列 2______;;_______||___不成立______*)____成立____默认命令序列___;;___|PS:1、case 行尾必须为单词“in”,每一模式必须以右括号“)”结束;2、双分号“;;”表示命令序列的结束;3、模式字符串中,可以用方括号表示一个连续的范围,如“[0-9]”; 还可以用竖杠符号“|”表示或,如“A|B”。4、最后的“*)”表示默认模式,其中的“ * ”相当于通配符。

 案例:

1、检查用户输出的字符类型
[root@localhost ~]#vim keys-type.sh
#!/bin/bash    //指定SHELL
read -p "请输入一个字符,并按下 ENTER 建确认:" KEY
case "$KEY" in[a-z]|[A-Z])    //匹配任意字母echo "您输入的是 字母。";;[0-9])    //匹配任意数字echo "您输入的是 数字。"*)    //默认模式,匹配任意字符echo "您输入的是 空格、功能键或其他控制字符。"、
esac
[root@localhost ~]#chmod +x keys-type.sh    //给予脚本可执行的权限
[root@localhost ~]#./keys-type.sh    //运行脚本
请输入一个字符,并按下 ENTER 建确认:9    //输入字符
您输入的是 数字。
2、编写系统服务脚本
 

脚本文件 http-server.sh

#!/bin/bash# 简易 HTTP 服务控制脚本# 功能:start|stop|restart|status# 依赖:Python3(内置 http.server)# 配置项(按需修改)PORT=8000 # 服务端口WEB_ROOT="./www" # 网站根目录PID_FILE=".httpd.pid" # PID 文件路径LOG_FILE="httpd.log" # 日志文件路径# 定义操作函数start_server() {# 检查是否已运行if [ -f "$PID_FILE" ]; thenecho "服务已在运行中 (PID: $(cat $PID_FILE))"return 1fi# 创建网站目录mkdir -p "$WEB_ROOT"echo "启动 HTTP 服务:端口=$PORT, 根目录=$WEB_ROOT"# 启动 Python HTTP 服务器(后台运行)nohup python3 -m http.server "$PORT" --directory "$WEB_ROOT" > "$LOG_FILE" 2>&1 &echo $! > "$PID_FILE" # 记录 PIDecho "服务已启动 | PID: $(cat $PID_FILE) | 日志: $LOG_FILE" }stop_server() {if [ ! -f "$PID_FILE" ]; thenecho "服务未运行"return 1filocal pid=$(cat "$PID_FILE")echo "停止 HTTP 服务 (PID: $pid)..."kill -9 "$pid" && rm -f "$PID_FILE" echo "服务已停止"}# Case 分支处理命令case "$1" instart)start_server;;stop)stop_server;;restart)stop_serversleep 1start_server;;status)if [ -f "$PID_FILE" ]; thenecho "状态: 运行中 (PID: $(cat $PID_FILE))"elseecho "状态: 未运行"fi;;*)echo "用法: $0 {start|stop|restart|status}"exit 1esac

使用说明

1. 快速启动
# 赋予执行权限 chmod +x http-server.sh 
# 启动服务(默认端口 8000,根目录 ./www) ./http-server.sh start 
# 浏览器访问 curl http://localhost:8000 
2. 其他操作
# 停止服务 ./http-server.sh stop 
# 重启服务 ./http-server.sh restart 
# 查看状态 ./http-server.sh status

扩展:chkconfig 命令

chkconfig 命令详解


一、定义与功能

chkconfig 是 Linux 系统中用于管理 ‌SysV init 服务‌的工具,通过控制 /etc/rc[0-6].d 目录下的符号链接,实现服务在不同运行级别下的自启动配置‌。其主要功能包括:

  • 查看服务在各运行级别的启动状态‌
  • 启用/禁用服务的自启动‌
  • 添加或删除服务的管理配置‌

二、基本语法
chkconfig [选项] [服务名] [on/off/reset] 

常用选项‌:

  • --list 或 -l:列出所有服务的启动状态‌
  • --add 或 -a:将服务添加到管理列表‌
  • --del 或 -d:从管理列表中删除服务‌
  • --level <运行级别>:指定操作的运行级别(如 3,5)‌

三、运行级别(Runlevel)说明
级别含义
0关机
1单用户模式(维护模式)
2多用户无网络模式
3多用户命令行模式(带网络)
4保留未使用
5图形界面模式
6重启系统
‌:默认操作级别通常为 ‌3 或 5‌‌。

四、核心功能详解
  1. 管理服务启停

    • 启用服务:指定运行级别下自启动
      chkconfig --level 3,5 httpd on # 在级别3、5启用httpd‌
    • 禁用服务:关闭自启动
      chkconfig httpd off # 默认关闭所有级别(2-5)的自启动‌:ml-citation{ref="1,7" data="citationList"} 
  2. 配置运行级别

    • 查看特定服务的状态:
      chkconfig --list sshd # 输出sshd在各运行级别的状态‌
    • 重置服务配置:恢复为脚本默认值
      chkconfig --reset myservice # 清除自定义设置‌
  3. 服务脚本配置

    • 添加自定义服务需在 /etc/init.d/ 下创建脚本,并包含以下元数据:
      #!/bin/bash 
      # chkconfig: 345 99 05 # 在级别3/4/5启用,启动优先级99,停止优先级05‌ 
      # description: 自定义服务描述‌ 
    • 优先级范围:0-99,数值越小优先级越高‌8。

五、常见操作示例
  1. 查看所有服务状态

    chkconfig --list # 输出所有服务的启动配置‌
  2. 启用/禁用服务

    chkconfig sshd on # 在默认级别(2-5)启用sshd‌
    chkconfig nfs off # 关闭nfs的自启动‌
  3. 添加/删除服务管理

    chkconfig --add myservice # 添加myservice到管理列表‌
    chkconfig --del oldservice # 删除oldservice的管理配置‌ 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com