• 大二linux作业总结


      学期作业,先贴个题目:

      写一个shell脚本,包含两个数字数组array1和array2,分别初始化为{1,2,3,4,5}和{1,4,9,16,25}。脚本生成并显示一个数组,其中的元素是这两个数组中对应元素的和,数组中的第一个元素是1+1=2,第一个元素是2+4=6等

      题目看起来很简单,不过凭我们学的三脚猫功夫,一下手就知有没有啊TAT...

      先去网上学了shell脚本关于数组的基本知识,可以自行百度一大堆,贴下刚开始的源码

     1 #!bin/bash
     2 a=( 1 2 3 4 5 )
     3 b=( 6 7 8 9 10 )
     4 c=( 0 0 0 0 0)
     5 i=0
     6 while [ $i -lt ${#a[@]} ]
     7 do
     8   let " ${c[$i]} = ${a[$i]} + ${b[$i]} "
     9   echo ${c[$i]}
    10   let " i = $i + 1 "
    11 done

      其实最开始用的是 expr那种语句写的,不过一直报错(错误代码在下方),至今不知原因,就找到了另一种方法写,欢迎大佬指教。

      

      然后总结下出现的各种bug

      1.

         这个是按平时运行shell脚本的命令,一直报错,上网搜了搜是shell脚本版本的问题。

         解决方案有三种,不过对我只有第一种有用:

      1)执行 bash example.sh

      2)将脚本第一行改为    #!/bin/bash

      3)执行./example.sh

      2.输入执行命令后又出现了第二个错误

      

      这个错误的意思是说  你在尝试非法赋值,又在网上搜了搜,发现是let语法错误,等号左边不需要声明变量的符号‘$’,然后我就删掉了这个符号出现了第三个错误orz...

      另外let语句等号左右有无空格都一样

      3.

      

      好吧,也许你已经猜到为什么报错了........

      因为没有把大括号(“{}”)去掉啊啊啊,被自己蠢哭_(:з」∠)_

      去掉之后就可以完美运行啦~~

    希望自己的错误可以帮助到各位小伙伴!

     无误代码在下面:

    #!bin/bash
    a=( 1 2 3 4 5 )
    b=( 6 7 8 9 10 )
    c=( 0 0 0 0 0)
    i=0
    while [ $i -lt ${#a[@]} ]
    do
      let " c[$i] = ${a[$i]} + ${b[$i]} "
      echo ${c[$i]}
      let " i = $i + 1 "#Also you can write like this:  let "i++"
    done
  • 相关阅读:
    vue使用腾讯地图选点组件问题总结
    腾讯位置服务实现点击建筑显示围栏及建筑信息效果
    unity使用UMP播放RTSP流,打包exe后显示空白
    uniapp获取context
    Android studio安装debug apk提示“调用者不被允许测试的测试程序”
    unity使用VuplexWebView内嵌浏览器遮挡前方按钮的问题
    unity透明材质上放3dtext不同角度,文字变灰的问题
    Python线程指南
    mysql 简单表和索引
    dubbo 提示 403 unknown user
  • 原文地址:https://www.cnblogs.com/wastedlands/p/8047512.html
Copyright © 2020-2023  润新知