当前位置: 首页 > 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.xdnf.cn/news/185941.html

相关文章:

  • “八股训练营”学习总结
  • Linux学习——FTP(功能实现)
  • windows anaconda 配置 ipynb 环境
  • 《电商业务分析终极框架:从数据到决策的标准化路径》
  • OpenLayers WebGL与3D渲染 (进阶一)
  • 五分钟讲清数据需求怎么梳理!
  • 数据库关系模型的总结
  • 软件功能设计视角下的能源管理系统功能清单构建与实践
  • Redis高可用架构全解析:主从复制、哨兵模式与集群实战指南
  • 2025系统架构师---黑板架构风格
  • 风控策略引擎架构设计全解析:构建智能实时决策系统
  • 探索大语言模型(LLM):自监督学习——从数据内在规律中解锁AI的“自学”密码
  • MLLM之Bench:LEGO-Puzzles的简介、安装和使用方法、案例应用之详细攻略
  • OpenSSH 漏洞 CVE-2025-26465 和 CVE-2025-26466 可引发中间人攻击和 DoS 攻击
  • 毫米波振荡器设计知识笔记
  • BeautifulSoup的详细使用说明
  • 迈锐思C1pro插件安装包【附百度网盘链接】
  • 信创系统 sudoers 权限配置实战!从小白到高手
  • Spring 与 ActiveMQ 的深度集成实践(三)
  • ARP协议(地址解析协议)
  • Unreal Niagara制作Scratch随模型发射粒子特效
  • Make学习二:makefile组成要素
  • 基于STM32、HAL库的ADS1115模数转换器ADC驱动程序设计
  • 驱动开发硬核特训 · Day 22(上篇): 电源管理体系完整梳理:I2C、Regulator、PMIC与Power-Domain框架
  • ByeCode,AI无代码开发平台,拖拽式操作构建应用
  • OpenFeign 自定义拦截器
  • 基于javaweb的SpringBoot在线电子书小说阅读系统设计与实现(源码+文档+部署讲解)
  • Java详解LeetCode 热题 100(02):LeetCode 49. 字母异位词分组(Group Anagrams)详解
  • 一、接口测试01
  • 基于Python Flask的深度学习电影评论情感分析可视化系统(2.0升级版,附源码)