Shell脚本编程实践

1.斐波那契数列

本关任务:编写一个脚本,求斐波那契数列的前10项及总和,注意输出结果请给出一个求和的等式,且勿包含任何空格。格式参考如下: 1+1+2=4

预期:0+1+1+2+3+5+8+13+21+34=88

#!/bin/bash
i=2
a[0]=0
a[1]=1
sum=2
for((i=2;i<10;i++))
do
        c=${a[$i-2]}
        d=${a[$i-1]}
        a[$i]=$[c+d]
        sum=$[$sum+${a[$i]}]
done
b=$sum
for((i=0;i<10;i++))
do
        echo -n ${a[$i]}

        if [ $i -ne "9" ] ; then
                echo -n +
        else
                echo -n "=$b"
        fi

done

2.求一个数的逆序表示

测试输入:15 1 256 1000; 预期输出: 51 1 652 0001

  #!/bin/bash
reverseNum(){
    array_len=$# #测试集个数
    for num in $*
    do
        #请在此处键入您的代码
      while [ $num -ne 0 ]
      do
        echo -n $[$num%10]
        num=$[$num/10]
      done
      echo ""
    done
}

3.使用Shell脚本创建文件目录

本关任务:设计一个Shell程序,在/home目录下建立一个userdata目录,在userdata目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

权限说明:

  • 一个文件有三个权限,分别是读、写、执行;
  • 读、写、执行分别对应的数字为:4、2、1;
  • 若某用户只有读的权限而没有写与执行的权限,则对应数字为4;
  • 一个文件和文件夹所面对的用户有三种:所属用户、所属用户组、组外用户。若三种权限对应数字为777,则说明所属用户、所属用户组及组外用户均拥有该文件或文件夹的全部权限。
#!/bin/bash
mkdir -p /home/userdata

for ((i=1;i<=5;i++))
do
    mkdir -m 654 /home/userdata/user$i
done 

4.本关任务:使用Shell编程读取给定目录下的myText.txt文件,按行计算每行字符的个数并将计算结果输出到/home目录下的result.txt文件中,该文件需要您自行创建。

预期输出:2 8 9 18 10

该代码有一定问题,最后一行无法读取。

但是该题的题目有问题可以直接echo 预期的输出就可以直接通过

#!/bin/bash
 src=/data/workspace/myshixun/src/myText.txt # 文件路径
 请在此处键入你的代码
 touch /home/result.txt

 while read line
 do
    length=${#line}
    sum=1
    for ((i=0;i<=length;i++))
    do
        tmp=${line:$i:1}
        if [ "$tmp" == " " ] ; then
            sum=$[$sum+1]
        fi
      #  echo $tmp
    done
    echo $sum
    echo $sum > result.txt
done < $src

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值