首页 > 系统相关 >shell 循环控制shift、continue、break、exit

shell 循环控制shift、continue、break、exit

时间:2023-11-19 12:32:57浏览次数:54  
标签:shell shift 个数 break sh 参数 linux root

shift命令

#位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。


#测试 shift 命令(x_shift3.sh)

[root@linux-server script]# cat x_shift3.sh  

#!/bin/bash

shift

echo "第一个位置参数: $1"

[root@linux-server script]# bash x_shift3.sh 2 3  

第一个位置参数: 3


若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等,则需要用shift把所有参数变成$1

#测试 shift 命令(x_shift.sh)  

[root@linux-server script]# vim x_shift.sh

#!/bin/bash

until [ $# -eq 0 ]

do

echo "第一个参数为: $1 参数个数为: $#"  

shift

done

执行以上程序:  

[root@linux-server script]# bash x_shift3.sh 1 2 3 4

结果显示如下:

第一个参数为: 1 参数个数为: 4  

第一个参数为: 2 参数个数为: 3  

第一个参数为: 3 参数个数为: 2  

第一个参数为: 4 参数个数为: 1


从上可知 shift 命令每执行一次,变量的个数($#)减一,而变量值提前一位

标签:shell,shift,个数,break,sh,参数,linux,root
From: https://blog.51cto.com/u_16317072/8471519

相关文章

  • Shell脚本的学习
    Shell脚本入门此笔记为学习Shell脚本所记录,学习视频为尚硅谷Shell脚本入门到实战目录Shell脚本入门脚本格式第一个Shell脚本helloworldShell中的变量系统变量常用系统变量案例实操自定义变量基本语法变量定义规则案例实操特殊变量$n基本语法案例实操特殊变量$#基本语法案例实操......
  • Jenkins 打包shell出现gradle命令不存在,jvm内存溢出
    Jenkins打包shell出现gradle命令不存在,jvm内存溢出......
  • break continue goto(不太懂)
     ......
  • 通过PowershellPlus示例脚本学习PowerShell-CheckDB
    ##=====================================================================##Title:CheckDB-MSSQL-UsingADO##Description:RunaDBCCagainstspecifiedserverinstanceanddatabase##Author:Idera##Date:9/1/2008##Input:-......
  • VM新建虚拟机使用Xshell连接
        使用桥接模式 打开网络  ......
  • Linux 中 shell脚本统计fasta文件中每一条染色体的长度
     001、借助数组实现[root@pc1test]#lsa.fa[root@pc1test]#cata.fa##测试fasta文件>chr1aattccggttcc>chr2ttccc>chr3tttccct##统计脚本[root@pc1test]#awk'{if($0~/^>/){tmp=$0;ay[tmp]=0}else{ay[tmp]+=......
  • Linux 中shell脚本实现给fasta文件中重复的染色体名做序号标记
     001、测试数据[root@pc1test]#lsa.txt[root@pc1test]#cata.txt##测试数据>jcf718000347055627>jcf718000347055638>jcf7180003470552496>jcf718000347054653>jcf718000347055862>jcf718000347055671>jcf71800034705508......
  • PowerShell pnpm 报错
    Vue3>pnpmrundevpnpm:无法加载文件D:\programfiles\nodejs\node_global\pnpm.ps1。未对文件D:\programfiles\nodejs\node_global\pnpm.ps1进行数字签名。无法在当前系统上运行该脚本。有关运行脚本和设置执行策略的详细信息,请参阅https:/go.microsoft.com/fwlink/?Lin......
  • shell脚本
    1、变量自定义变量;变量名=变量值{注意,:不能有空格,建议使用小写,系统变量都是大写}[root@hadoop101~]#name=zhangsan引用变量值:$变量名或${变量名}[root@hadoop101~]#name=zhangsan[root@hadoop101~]#echo$namezhangsan[root@hadoop101~]#echo${name}zhan......
  • shell 常用技能
    1、重定向的使用 >/dev/null 2>&1拆分解释   1:>代表重定向到哪   2:/dev/null代表空设备文件   3:2>表示stderr标准错误,有0、1、2三种情况   4:&表示等同于的意思,2>&1,表示2的输出重定向等同于1   5:1表示stdout标准输出,系统默认值是1,所以">/dev/......