头歌Linux——shell脚本入门——变量、字符串 练习一

第1关:Hello EduCoder !

任务描述

本关任务:欢迎来到shell 脚本世界,为了见证shell脚本的神奇,本小节带领大家写第一个shell脚本,希望脚本能够在右侧的命令行窗口中输出hello EduCoder

接下来让我们一起去开启shell脚本的快乐之旅吧!

相关知识

Shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。为了更好地学习shell编程,您需要对linux 系统命令有一定的了解,熟悉常用的命令,如:vim、echo、chmod等。

shell 语言编写的程序通常都非常轻巧,比如我想编写一个在屏幕上显示Hello World !程序:

 
  1. #!/bin/bash
  2. echo "Hello World !"

说明:#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 shellecho 命令用于向窗口输出文本内容。

Shell 脚本的运行通常有两种方法: 1、作为可执行程序运行

 
  1. chmod +x ./test.sh #使脚本具有执行权限
  2. ./test.sh #执行脚本

注意:一定要写成 ./test.sh,而不是 test.sh./的作用其实就是告诉系统就在当前目录查找,否则系统会去PATH路径中查找有没有test.sh的文件,而系统默认情况下只有 /bin, /sbin, /usr/bin/usr/sbin 等在 PATH 中,很难找到。

2、作为解释器参数运行,这种运行方式是直接运行解释器,其参数就是 shell 脚本的文件名,如:

 
  1. /bin/sh test.sh

这种方式运行的脚本,不需要在第一行指定解释器信息。

编程要求

请按照要求,完成以下实践内容。 1、在/opt/目录下创建第一个shell脚本 文件命名为 test.sh; 2、编写test.sh脚本,让其输出Hello EduCoder(通过 vim 编辑器编辑); 3、给/opt/test.sh赋予执行权限; 4、运行test.sh文件。

测试说明

编写完脚本之后,点击测评,这里点击评测按钮及等于在 linux 终端执行cd /opt ; ./opt/test.sh命令,因此要注意执行权限的赋值 平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。


开始你的任务吧,祝你成功!

#####请按照要求,完成以下实践内容#####
  打开右边的命令行,进入命令行
  按以下要求编写第一个脚本/opt/test.sh:
  cd /opt/
  1.在/opt/目录下创建第一个shell脚本 文件命名为 test.sh;
  vim /opt/test.sh
  2.编写test.sh脚本,让其输出Hello EduCoder(通过vim编辑器编辑);
  #! /bin/bash
   echo "Hello EduCoder"
  3.给/opt/test.sh赋予执行权限;
  chmod +x ./test.sh
  4.点击“评测”按钮; (点击“评测”按钮 执行的操作相当于执行了  cd /opt/; ./test.sh)

第2关:shell变量

#####请按照要求,完成以下实践内容#####

打开右边的命令行,进入命令行
按以下要求编写第二个脚本/opt/test2.sh:

1.创建 一个脚本 /opt/test2.sh , 已知向 /opt/test.sh 传递参数 "www"  "educoder" "net" 三个字符串。

2. /opt/test.sh 需要实现如下功能:输出传递的参数的个数并且输出第一个参数

比如: 向 /opt/test2.sh传递 是"a" "b" "c" "d",则执行
bash /opt/test2.sh a b c d 输出的结果应该是 4 a ,"4"为参数的个数;"a"为第一个参数

3.编写完脚本之后 点击“评测”按钮; (点击“评测”按钮 执行的操作相当于执行了  cd /opt/; ./test2.sh)

第3关:shell 字符串

#!/bin/bash

string1="Hello www.educoder.net, hello linux! hello Shell ,Hello CNCF,hello Kubernetes,redis"


#********* Begin *********#

##1、str1 为 替换string1中第一次出现的 "Hello"为"hello"后的字符串
str1=${string1/Hello/hello}

##2、str2 为 替换string1中所有的"Hello"为"hello"后的字符串
str2=${string1//Hello/hello}

##3、str3 为 删除string1中的字符串"Kubernetes,"后的字符串
str3=${string1/Kubernetes,/}


##4、变量letnth为字符串string1的长度,判断string1长度 完成如下代码:
##如果超过50则输出 "Length over 50" 如果小于等于50则输出"Length less than 50 "

lenth=${#string1}

if [ $lenth -gt 50 ]; then

        echo "Length over 50"
else
        echo "Length less than 50"

fi


#*********  End  *********#

echo $str1
echo $str2
echo $str3

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张謹礧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值