shell入门-一个简单的脚本

本文介绍如何通过Shell命令查询当前系统上的在线用户数量,并演示了如何创建一个简单的Shell脚本来自动化这一过程。

假设你想知道,现在系统上有多少人登录。who命令可以查询:

$who

这里写图片描述
这里我用的树莓派只添加了一个用户,在大型的、多用户的系统上,所列出来的列表很长,不方便我们查询究竟有多少用户。对此,我们可以利用wc (字数计算)程序,它可以算出行数(line)、字数(word)与字符数(character)。此处我们只算行数

$who | wc -l       计算用户个数

| (管道)符号可以在两程序之间建立管道(pipeline),who的输出,是wc的输入。
这里写图片描述
脚本创建:
首先将管道转变成一个独立的命令,就是将这一命令输入到一个一般的文件中,
其次加可执行权限 chmod +x [文件名]
最后执行文件 ./文件名
如下:
这里写图片描述
注:cat 后是重定向符号
输入who | wc -l 之后回车 Ctrl+D 结束

简单的一个脚本展现了小型shell脚本的典型开发周期:
1 直接在命令行(command line)上测试。
2 一旦找到能否完成工作的适当语法,将它们放进一个独立的脚本里,
3 为该脚本设置执行权限
4运行脚本

### Shell脚本中 if 语句的流程控制入门教程 在Shell脚本编程中,`if`语句是实现条件判断的核心工具之一。它允许脚本根据特定条件执行不同的代码块,从而实现更复杂的逻辑控制[^2]。 #### 基本语法 `if`语句的基本结构如下: ```bash if [ condition ]; then # 当条件为真时执行的命令 else # 当条件为假时执行的命令 fi ``` 其中,`condition`是一个布尔表达式,用于测试某个条件是否成立。如果`condition`为真(非零值),则执行`then`后的代码块;否则执行`else`后的代码块[^2]。 #### 示例:简单的 if-else 判断 以下是一个示例脚本,演示如何使用`if`语句判断输入参数是否为"hello": ```bash #!/bin/bash if [ "$1" = "hello" ]; then echo "world" else echo "hello" fi ``` 在此脚本中,`$1`表示传递给脚本的第一个参数。如果参数为"hello",则输出"world";否则输出"hello"[^3]。 #### 使用 exit 终止脚本 在某些情况下,可能需要根据条件提前终止脚本的执行。这可以通过`exit`命令实现。例如,检查关键文件是否存在并决定是否继续执行脚本: ```bash #!/bin/bash if [ ! -f "/etc/passwd" ]; then echo "关键文件缺失,终止脚本!" exit 1 # 终止整个脚本 fi echo "此代码不会被执行" ``` 当`/etc/passwd`文件不存在时,脚本会输出错误信息并退出,后续代码将不会被执行[^1]。 #### 多分支条件判断 除了简单的`if-else`结构,还可以使用`elif`(即“else if”)来处理多个条件分支。例如: ```bash #!/bin/bash if [ "$1" = "start" ]; then echo "启动服务..." elif [ "$1" = "stop" ]; then echo "停止服务..." else echo "未知命令" fi ``` 此脚本根据传递的参数执行不同的操作:`start`启动服务,`stop`停止服务,其他任何参数都会输出"未知命令"[^2]。 #### 注意事项 1. 条件表达式需要用方括号`[]`括起来,并且方括号与条件之间必须有空格。 2. 字符串比较时,建议使用双引号将变量包裹起来,以防止变量为空时导致语法错误。 3. 使用`exit`命令时,可以指定一个退出状态码,通常0表示成功,非0表示失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值