首页 > 系统相关 >Linux里反引号`和单引号‘注意区分,二者很像;以及双中括号[[]]

Linux里反引号`和单引号‘注意区分,二者很像;以及双中括号[[]]

时间:2024-11-20 10:45:27浏览次数:3  
标签:单引号 watch sh 中括号 && Linux test bash

$ While [[ `seq 1 10 | shuf | head -n 1` != "1" ]]; do echo "retry"; done

问题结果发现:`seq 1 10 | shuf | head -n 1`是反引号`,不是单引号’
1.认成单引号和双引号执行情况:里面是字符不执行
test_watch.sh
在这里插入图片描述
执行bash脚本debug

$ bash -x test_watch.sh

在这里插入图片描述
2. 正确表述
在这里插入图片描述
执行bash脚本debug

$ bash -x test_watch.sh

在这里插入图片描述
附1:Linux下的特殊字符
在这里插入图片描述
附2:双中括号[[]]
双中括号[[]],[[ “KaTeX parse error: Expected 'EOF', got '&' at position 9: a" != 2 &̲& "g” = 3 ]] <=> [ “ a " ! = 2 − a " a" != 2 -a " a"!=2−a"g” = 3 ]

  • [[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。
  • 支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。
  • 使用[[ … ]]条件判断结构,而不是[ … ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。
  • bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
if ($i<5)    
if [ $i -lt 5 ]    
if [ $a -ne 1 -a $a != 2 ]    
if [ $a -ne 1] && [ $a != 2 ]    
if [[ $a != 1 && $a != 2 ]]    
     
for i in $(seq 0 4);do echo $i;done    
for i in seq 0 4;do echo $i;done    
for ((i=0;i<5;i++));do echo $i;done    
for i in {0..4};do echo $i;done    

标签:单引号,watch,sh,中括号,&&,Linux,test,bash
From: https://blog.csdn.net/m0_59034502/article/details/143904900

相关文章

  • 【Linux合集】当我们将运行级别设置为重启时……
    总以为设置系统重启就是重启,哈,我一开始就是这样认为的,但是设置之后就发现自己想错了,设置之后并不会发生任何变化,但问题会出现在你想把虚拟机关闭之后,或者当你重启的时候你就会发现一个很悲催的事情——虚拟机进入了无限的循环重启的地步,怎么办。满头雾水,却又无计可施。别急,教你怎......
  • 【Linux日常】windows机器添加GPU监控
    监控项:NvidiaGPU监控节点:192.168.10.11被监控节点:windows机器,ip:10.0.0.10插件: https://github.com/utkuozdemir/nvidia_gpu_exporter/releases/download/v1.2.1/nvidia_gpu_exporter_1.2.1_windows_x86_64.zip 预览模板windows机器操作1、进入监控机器windows机器......
  • Linux基础命令二
    二、进阶命令2.1ps命令作用:监测进程。psaux:显示所有用户的进程可以看见CPU使用率,内存使用率、进程状态ps-ef系统上运行的所有进程可以看见PPID一些信息UID:启动这些进程的用户。PID:进程的进程ID。PPID:父进程的进程号(如果该进程是由另一个进程启动的)。C:进程生......
  • Linux基本命令(三) 文本处理及优化终端操作
    目录一、文本处理  1.1内容匹配1.1.1grep文件内容搜索1.1.2 awk正则匹配内容1.2 内容打印 1.2.1head显示文件头部内容1.2.2tail显示文件底部内容1.2.3sed文件内容显示1.2.4cut列提取1.3 内容处理1.3.1内容替换1.3.2sort内容排序1.3.3uniq内容去重......
  • Rocky Linux 9.5 正式版发布 - RHEL 100% 1:1 兼容免费发行版
    RockyLinux9.5正式版发布-RHEL100%1:1兼容免费发行版RockyLinux由CentOS项目的创始人GregoryKurtzer领导请访问原文链接:https://sysin.org/blog/rocky-linux-9/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org以社区方式驱动的企业LinuxRockyLinu......
  • 虚拟机之linux系统命令
    1、df查看磁盘使用情况(1)dfFilesystem:代表该文件系统时哪个分区,所以列出的是设备名称。1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。Used:已经使用的空间大小。Available:剩余的空间大小。Use%:磁盘使用率。如果使用率在90%以上时,就需要注......
  • 虚拟机之linux介绍和命令
    一、linux介绍1、Linux是一个免费、开源的操作系统,能多用户、多任务、支持多线程和多CPU的操作系统,相对windows更加稳定,在unix系统的基础上开发的系统;注解:(1)免费:不要钱(2)源代码公开(3)多用户:可以在不同用户操作(4)多任务:同时执行多个任务(5)多线程:支多个线程同时工作(6)多cpu:系......
  • linux之vim命令
    vim命令1、touch创建文件2、vim或vi编辑文件3、vim文件名4、vim编辑器共分为三种模式:(1)命令模式esc或ctrl+c(2)编辑模式按i键(3)底层命令模式先进入命令模式=shift+:=输入命令5、快捷键(1)enter键换行(2)backspce退格键,删除光标前一......
  • 【Linux】将python文件上传到GitHub(新版图文逐步详解)
    1.进入想要上传文件所在的文件夹,这里以如下图中目录下的t1为例2.输入如下命令,将当前目录变为git可以管理的目录gitinit3.将想要上传的文件添加到缓冲区gitaddt1.py出错了,查阅资料发现出现该提示是因为.gitignore文件中有规则将t1.py文件(或其所在目录)排除了,如果......
  • 如何在Linux系统实现屏幕旋转?触觉智能RK3568鸿蒙开发板演示
    本文介绍Linux系统实现屏幕角度旋转的方法,以解决不同产品形态的展现方式,其中Ubuntu、Debian系统可以通过xrandr工具实现屏幕旋转。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568芯片,搭载四核A55处理器,主频2.0Ghz;1T算力NPU;现已发布全新OpenHarmony5.0Release固件。Linux旋......