当前位置: 首页 > news >正文

shell命令二

在Shell脚本中,变量本质上都是字符串类型

核心对比表

符号功能类型典型场景关键特性
```命令替换获取命令输出作为值反引号已逐渐被 $() 取代
[]条件测试文件检测、逻辑比较必须保留空格,支持 [[ ]] 扩展
{}代码块/扩展组合命令或生成序列代码块在当前 Shell 执行,每个shell命令都以;结束

read键盘写入

作用:从键盘读取变量值

read -p  ""  i#-p  给出提示消息

export全局变量

作用:让变量可以在子进程中使用

export   a=1
注意:
1.命令行设置全局变量
]# export a=1
在.sh文件中同样可以使用
2.在.sh文件中设置全局变量
export a=1
命令行无法调用
==原因:export定义的全局变量可以在子进程中使用,但是在子进程创建的全局变量无法在父进程使用==

数值运算

使用$(())或者$[]
]# echo $[i+1]
使用let
]# let i++

条件测试

0表示“真”(成功),非零值表示“假”(失败)

echo $? 显示上一条命令的退出状态码

1)判断变量是否为空
[ 操作符 字符串 ]
-z 字符串的值为空
-n 字符串的值不为空(相当于! -z)
[root@nsd ~]# w=212
[root@nsd ~]# [ -z "$w" ]
[root@nsd ~]# echo $?
1
[root@nsd ~]# [ -z "$p" ]
[root@nsd ~]# echo $?
0
==判断是否为空的时候并不输出内容 echo $?  输出判断结果==
2)一行执行多条命令的情况
# A ; B#执行A命令后执行B命令,两者没有逻辑关系
# A && B   #仅当A命令执行成功,才执行B命令,&&并且的意思,执行失败则不往下执行
# A || B   #仅当A命令执行失败,才执行B命令,||或者的意思,A执行成功则不执行B,A执行失败,则执行B
判段变量是否为空,有输出
]# [ -z "$a" ] || echo "a变量不为空"
3)判断字符串是否相等
[ 字符串1 操作符 字符串2 ]
== 两个字符串相同            
!= 两个字符串不相同
一般和与或符号一同使用
#判断两个字符串是否是相同
[ "123" == "1234" ]  &&  echo "相同" || echo "不相同"

4)整数大小比较

[ 字符串1 操作符 字符串2 ]

1)-gt 大于
2)-ge 大于或等于
3)-lt 小于
4)-le 小于或等于
5)-eq 相等

识别文件/目录的状态

[ -f "/etc/hosts" ]
1)-e 判断对象是否存在(不管是目录还是文件)
2)-d 判断对象是否为目录(存在且是目录)
3)-f 判断对象是否为文件(存在且是文件)
4)-r 判断对象是否可读
5)-w 判断对象是否可写
6)-x 判断对象是否具有x权限

使用if选择结构


http://www.mrgr.cn/news/100476.html

相关文章:

  • Centos 7 ssh连接速度慢(耗时20秒+)
  • 【Node.js 】在Windows 下搭建适配 DPlayer 的轻量(简陋)级弹幕后端服务
  • 2025 VSCode中如何进行dotnet开发环境配置完整教程
  • Android 13 接入 MediaSession 指南
  • Spring框架的ObjectProvider用法-笔记
  • CI/CD自动化部署(持续集成和持续交付/部署)
  • Linux常用命令23——usermod修改用户信息
  • 《全球反空间能力》报告翻译——部分1
  • Vue3:component(组件:uniapp版本)
  • 第一个 servlet请求
  • K8S Pod 常见数据存储方案
  • Java SE(3)——程序逻辑控制,输入输出
  • MySQL----查询
  • 数据结构二叉树与二叉搜索树c实现代码
  • 使用Open Compass进行模型评估,完成AI模型选择
  • PTA -L1-005 考试座位号(BufferedReader、Arraylist动态数组、Map)
  • 数据结构强化篇
  • 【文心快码】确实有点东西!
  • 【Maven】特殊pom.xml配置文件 - BOM
  • uniapp: 低功耗蓝牙(BLE)的使用