linux shell比较命令

这篇具有很好参考价值的文章主要介绍了linux shell比较命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 比较运算
num1-eq num2 等于 [ 3 -eq $mynum ]
num1-ne num2 不等于 [ 3 -ne $mynum ]
num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]
num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]。
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符。

文件比较运算符-e filename      
如果 filename存在,则为真       [ -e /var/log/syslog ]-d filename       
如果 filename为目录,则为真      [ -d /tmp/mydir ]-f filename    
如果 filename为常规文件,则为真    [ -f /usr/bin/grep ]-L filename         
如果 filename为符号链接,则为真    [ -L /usr/bin/grep ]-r filename         
如果 filename可读,则为真       [ -r /var/log/syslog ]-w filename       
如果 filename可写,则为真       [ -w /var/mytmp.txt ]-x filename        
如果 filename可执行,则为真      [ -L /usr/bin/grep ]filename1-nt filename2      
如果 filename1比 filename2新,则为真    [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2   
如果 filename1比 filename2旧,则为真    [ /boot/bzImage -ot arch/i386
/boot/bzImage ]字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three"]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符num1-eq num2 等于 [ 3 -eq $mynum ]
num1-ne num2 不等于 [ 3 -ne $mynum ]num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]
2 awk
echo 'C20_660' | awk -F"_" '{print "" $1}' 
输出结果:C20
3 正则表达式
echo 'ACAA20_660' | sed 's/\([A-Z]\).*/\1/'
输出结果:A
echo 'XXACC20_660' | sed 's/[A-Z]\([0-9]\)/\1/'
输出结果:XXAC20_660
4 %,[@]用法
#表示掐头,% 表示去尾。
单个#或%的表示最小匹配,双个#或%表示最大匹配。
也就是说,当匹配有多种方案的时候,选择匹配最大长度还是最小长度。
如:workspace为/home/user/test.txt,则 %/* 最小匹配只会去除/test.txt;而 %%/* 会去除最长字串 /home/user/test.txt,即整个字串都被去除了。
因此,workspace=${workspace%/*} 就表示去除最后的文件名称,得到纯路径。

举例如下:文章来源地址https://www.toymoban.com/news/detail-612985.html

target_dir=$1
fnames=(`find $target_dir -name "*.wv1"`)
for fname in "${fnames[@]}"#遍历数组中的每个元素
do
  mv "$fname" "${fname%.wav}.nist"
  sndfile-convert "${fname%.wav}.nist" "$fname"
  if [ $? = 0 ]; then
    echo renamed $fname to nist and converted back to wav using sndfile-convert
  else
    mv "${fname%.wav}.nist" "$fname"
  fi
done

到了这里,关于linux shell比较命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 这些Shell分析服务器日志命令集锦,优秀!

    自己的小网站跑在阿里云的 ECS 上面, 偶尔也去分析分析自己网站服务器日志,看看网站的访问量。看看有没有黑客搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! uniq -c 相当于分组统计并把统计数放在最前面 访问量最大的前20个ip 对比httpd.conf中MaxClients的数

    2024年02月19日
    浏览(43)
  • Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载

    Shell脚本常用命令 简介 1、什么是shell: Shell 是一个用 C 语言编写的应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写的脚本程序,扩展名为.sh。 2、如何编写shell脚本: 文本编辑器(可以使用

    2024年02月03日
    浏览(69)
  • Linux&Shell--多服务器自动登录连接

    sshpass 是一个命令行工具,用于自动化SSH密码认证。它通常在脚本或自动化任务中使用,其中您需要提供密码以建立SSH连接,而无需用户干预。可以直接将密码作为命令行参数或通过文件提供,以便在建立SSH连接时自动输入密码。这对于需要自动化处理SSH连接的任务非常有用

    2024年02月03日
    浏览(59)
  • DELL服务器全系列ipmitool命令调节风扇转速(shell+windows软件)

    首先要确保你的电脑和服务器在同一个局域网,并且设置好带外地址可以ping通,然后电脑安装ipmitool 1.1参数解析 -I lanplus 使用 lanplus 作为通信接口。lanplus 是 IPMI v2.0 over LAN (通常是称为“LAN+”或简称“lanplus”) 的接口类型。 -H 192.168.2.1 设置目标 IP 地址为 192.168.2.1。这是你想

    2024年03月24日
    浏览(54)
  • Liunx服务器磁盘挂载

    可以看到我的vdb磁盘是没有进行挂载的,挂载前需要先进行磁盘分区 分区相关指令 m 显示命令列表 p 显示磁盘分区同fdisk -l n 新增分区 d 删除分区 w 写入并退出 首先输入n新增分区,然后选择p分区类型为主分区。然后按回车键直到出现“ Command(m for help): ”,最后输入w写入分

    2024年02月12日
    浏览(41)
  • liunx服务器安装kafka

    kafka 3.0.0 之前 (包括3.0.0版本)支持jdk 8 ,3.0.0之后版本不再支持jdk8版本 , 按照官网安装kafka ,出现了各种各样的问题。 总结:kafka和zookeeper和jdk版本对应, kafka启动报错 根据提示改正后 需要删除某些临时文件内容 。 下面整理了kafka安装的完整步骤, 适合所有kafka安装版

    2024年02月08日
    浏览(34)
  • liunx服务器使用selenium

    最近在本地windows系统(下面简称本地)用selenium写了一个自动化爬虫,放到我liunx服务器(下面简称服务器)上面运行报错,记录处理流程 一开始以为和本地一样,下好chrome浏览器和驱动就可以直接运行了(太天真了~) 1、下载chrome 查看chrome版本安装对应版本chromedriver 我的

    2024年02月11日
    浏览(43)
  • 记录liunx服务器和docker时区修改

    我的博客是部署在docker里面的,然后我发现评论和留言的时间和北京时间是有差别的,相差8个小时,然后发现是因为容器中的时区设置与服务器是不一致的,所以需要设置一下。 查看当前时区设置 使用 date 命令查看当前系统时间,发现当前时区设置为UTC。 列出可用的时区列

    2024年02月10日
    浏览(39)
  • 【Linux】在服务器上创建Crontab(定时任务),自动执行shell脚本

    业务场景:该文即为上次编写shell脚本的姊妹篇,在上文基础上,将可执行的脚本通过linux的定时任务自动执行,节省人力物力,话不多说,开始操作! 连上服务器后,在任意位置都可以执行: crontab -e 如果没有进入 编辑cron任务模式 根据提示查看我们的服务器上是否未安装crontab没有则

    2024年02月14日
    浏览(59)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包