Linux下使用脚本读取参数修改配置文件(二)

简介: Linux下使用脚本读取参数修改配置文件

补充知识

条件判断

表达式 实例

[ expression ] [ 1 -eq 1 ]

[[ expression ]] [[ 1 -eq 1 ]]

test expression test 1 -eq 1 ,等同于[]

  • 注意:括号中的表达式前后都有空格,否则会报错!
╭─root@localhost.localdomain ~  
╰─➤  [ 1 -eq 1 ] && echo "true" || echo "false"
true
╭─root@localhost.localdomain ~  
╰─➤  [ 1 -eq 2 ] && echo "true" || echo "false"
false
╭─root@localhost.localdomain ~  
╰─➤  [1 -eq 2] && echo "true" || echo "false" 
zsh: bad pattern: [1


整数比较符

比较符 描述 实例

-eq, equal 等于 [ 1 -eq 1 ] 为true

-ne, not equal 不等于 [ 1 -ne 1 ] 为false

-gt, greate than 大于 [ 1 -gt 1 ] 为false

-lt, lesser than 小于 [ 1 -lt 1 ] 为false

-ge, greate or equal 大于或者等于 [ 1 -ge 1 ] 为true

-le, lesser or equal 小于或者等于 [ 1 -le 1 ] 为true

字符串比较符

运算符 描述 实例

== 等于 [ “a” == “a” ] 为true

!= 不等于 [ “a” != “a” ] 为false

-n 字符串长度不等于 0 为真 VAR1=1;VAR2=””,[ -n “V A R 1 ” ] 为 t r u e , [ − n “ VAR1” ]为 true,[ -n “VAR1”]为true,[−n“VAR2” ]为 false

-z 字符串长度等于 0 为真 VAR1=1;VAR2=””,[ -z “V A R 1 ” ] 为 f a l s e , [ − z “ VAR1” ]为false,[ -z “VAR1”]为false,[−z“VAR2” ]为 true

  • 注意:使用-n 判断字符串长度时,变量要加双引号,养成好习惯,字符串比较时都加上双引号

文件测试

测试符 描述 实例

-e 文件或者目录存在为真 [ -e path ] path 存在为 true

-f 文件存在为真 [ -f file_path ] 文件存在为 true

-d 目录存在为真 [ -d dir_path ] 目录存在为 true

-r 有读权限为真 [ -r file_path ]file_path有读权限为真

-w 有写权限为真 [ -w file_path ]file_path有写权限为真

-x 有执行权限为真 [ -x file_path ]file_path有执行权限为真

-s 文件存在且不为空为真 [-s file_path]file_path存在且不为空为真

布尔运算符

运算符 描述 实例

! 非关系,条件结果取反 [ ! 1 -eq 2 ]为true

-a 和关系,在[]表达式中使用 [ 1 -eq 1 -a 2 -eq 2 ]为true,两者都为真才为真

-o 或关系,在[]表达式中使用 [ 1 -eq 1 -o 2 -eq 1 ]为true,两者有一真则为真

逻辑判断符

判断符 描述 实例

&& 逻辑和,在[[]]表达式中或判断表达式是否为真时使用 [[ 1 -eq 1 && 2 -eq 2 ]]为 true,[ 1 -eq 1 ] && echo ‘true’,如果&&前面的表达式为true则执行后面的

|| 逻辑或,在[[]]表达式中或判断表达式是否为真时使用 [[ 1 -eq 1

整数运算符

运算符 描述

+ 加法

– 减法

* 乘法

/ 除法

% 取余

运算表达式 实例

$(()) $((1+1))

$[] $[]

其他运算符

命令 描述 实例

let 赋值并运算 let x++;echo $x 每执行一次 x 加 1,let y–;echo $y 每执行一次 y 减 1,let x+=2 每执行一次 x 加 2,let x-=2 每执行一次 x 减 2

expr 乘法*需要\转义"*" expr 1 * 2 运算符两边必须有空格,expr( 1 + 2) * 2 使用双括号时要转义,

if语句

if语句用exit结束


单分支

if 条件表达式 ;then
    命令
fi


  • 实例:
#!/bin/bash
read -p "请输入数字" num
if [ $num -lt 10 ] ;then
        echo "${num}是数字两位数"
fi
...
╭─root@localhost.localdomain ~  
╰─➤  bash test.sh
请输入数字3
3是数字一位数


多分支

if 条件表达式 ;then
    命令
else
    命令
fi


实例:


#!/bin/bash
read -p "请输入数字" num
if [ $num -gt 9 -a $num -lt 100 ] ;then
        echo "${num}是数字两位数"
else
        echo "${num}不是数字两位数"
fi
...
╭─root@localhost.localdomain ~  
╰─➤  bash test.sh 
请输入数字56
56是数字两位数
╭─root@localhost.localdomain ~  
╰─➤  bash test.sh
请输入数字222
222不是数字两位数


多分支

if 条件表达式 ;then
    命令
elif 条件表达式 ;then
    命令
else
    命令
fi


实例:


#!/bin/bash
num=`echo $RANDOM`
if [ $num -lt 1000 ];then
        echo "$num小于1000"
elif [ $num -ge 1000 -a $num -lt 2000 ];then
        echo "$num大于等于1000,小于2000"
elif [ $num -ge 2000 -a $num -lt 3000 ];then
        echo "$num大于等于2000,小于3000"
elif [ $num -ge 3000 -a $num -lt 4000 ];then
        echo "$num大于等于3000,小于4000"
else
        echo "$num大于等于4000"
fi
...
╭─root@localhost.localdomain ~  
╰─➤  bash test.sh
24497大于等于4000
╭─root@localhost.localdomain ~  
╰─➤  bash test.sh
20763大于等于4000



参考链接

相关文章
|
3月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
206 6
|
1月前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
64 1
|
3月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
738 2
|
2月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
36 0
|
3月前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
分布式计算 安全 Hadoop
Hadoop2.7实战v1.0之Linux参数调优
 Hadoop2.7实战v1.0之Linux参数调优  1.增大文件描述符nofile(查看当前的lsof |wc -l) 和 用户最大进程nproca>.调整Linux的最大文件打开数和进程数。
868 0
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
79 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
228 6