区块链技术博客
www.b2bchain.cn

Shell编程数组应用

这篇文章主要介绍了Shell编程数组应用的讲解,通过具体代码实例进行20645 讲解,并且分析了Shell编程数组应用的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=20645

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

目录

  • shell函数
    • 格式
    • 特殊$符号意思
    • 定义方法
    • 示例
      • 数组长度与下标
      • 数组的替换
      • 数组的删除
    • 递归函数
      • 递归遍历目录
      • Shell脚本计算10的阶乘10
  • Shell脚本调试
    • bash命令
      • 命令格式
      • 常用选项
    • set命令
      • 项目示例

shell函数

格式

函数名 [参数1] [参数2] 

特殊$符号意思

  • $0:是脚本本身的名字;
  • $#:是传给脚本的参数个数;
  • [email protected]:是传给脚本的所有参数的列表,即被扩展为"$1" “$2” “$3"等;
  • $*:是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个,即被扩展成”$1c$2c$3",其中c是IFS的第一个字符;
  • $$:是脚本运行的当前进程ID号;
  • $?:是显示最后命令的退出状态,0表示没有错误,其他表示有错误;

定义方法

  • 方法一:数组名=(value0 value1 value2 …)
  • 方法二:数组名=([0]=value [1]=value [2]=value … )[ ]:下标
  • 方法三:列表名=“value0 value1 value2 … ”
    数组名=($列表名)
  • 方法四:数组名[0]=“value”
    数组名[1]=“value”
    数组名[2]=“value”

示例

数组长度与下标

[[email protected] ~]# b=(1 2 3 4 5 ) [[email protected] ~]# echo ${#b[*]} 5 [[email protected] ~]# echo ${#b[@]} 5 [[email protected] ~]# echo ${b[0]} 1 [[email protected] ~]# echo ${b[4]} 5 [[email protected] ~]# echo ${b[@]} 1 2 3 4 5 
c=([0]=10 [1]=20 [2]=30) [[email protected] ~]# echo ${#c[@]} 3 [[email protected] ~]# echo ${c[0]} 10 [[email protected] ~]# echo ${c[2]} 30 [[email protected] ~]# echo ${c[*]} 10 20 30 

数组的替换

[[email protected] ~]# b=(1 2 3 4 5 ) [[email protected] ~]# echo ${b[@]/3/33}   (在输出时替换,本质未变) 1 2 33 4 5 [[email protected] ~]# echo ${b[@]} 1 2 3 4 5 [[email protected] ~]# b=${b[@]/3/33}      (改变本源) [[email protected] ~]# echo $b 1 2 33 4 5 

数组的删除

[[email protected] ~]# unset b [[email protected] ~]# echo ${b[@]}  

递归函数

调用自己本身的函数

function sum(){     s=`sum` } 

递归遍历目录

function list_files(){     for f in `ls $1`     do     #判断是否为目录     if [ -d "$1/$f" ];then         echo "$2$f"         #递归调用         list_files "$1/$f" "   $2"     else          echo "$2$f"     fi     done } list_files "/var/log" "" 

Shell脚本计算10的阶乘10

#!/bin/sh factorial=1  for a in `seq 1 10  ` do factorial=`expr $factorial*$a` done echo "10! = $factorial" 

Shell脚本调试

bash命令

命令格式

  • sh [-nvx] 脚本名

常用选项

-n,-v,-x

  • -n:不会执行该脚本,仅查询脚本语法是否有问题,如果没有语法问题就不显示任何内容,如果有问题会提醒报错。
  • -v:在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误,也会给出错误提示。
  • -x:将执行的脚本内容输出到屏幕上,这个是对调试很有用的参数。

set命令

  • set -x:开启调节模式
  • set +x:关闭调节模式

项目示例

[[email protected] ~]# vi grade1.sh 
#!/bin/bash set -x //开启调试模式 read -p "请输入你的分数(0-100):" GRADE if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] then echo "$GRADE 分!优秀" set +x //关闭调试模式 elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] then echo "$GRADE 分,合格" else echo "$GRADE 分?不合格" fi 
[[email protected] ~]# chmod +x grade1.sh [[email protected] ~]# ./grade1.sh  

Shell编程数组应用
Shell编程数组应用

本文转自互联网,侵权联系删除Shell编程数组应用

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Shell编程数组应用
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们