Shell 基础教程
主要内容
Shell 字符串
Shell 数组
Shell 注释
Shell 字符串
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。
前期准备,创建lianxi.txt文件,
vi lianxi.sh
或
vim lianxi.sh
单引号
#!/bin/bash
str='ni hao string'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字符串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号
#!/bin/sh
your_name="baoge"
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str
chmod +x ./lianxi.sh #使脚本具有执行权限
./lianxi.sh #执行脚本
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
Shell 数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
类似于 C 语言,数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于 0。
定义数组
在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:
跟练
vi arraytxt.sh
运行后
跟练
运行后
Shell 注释
以 # 开头的行就是注释,会被解释器忽略。
通过每一行加一个 # 号设置多行注释,像这样:
运行后,不会显示
案例练习
以下是关于Shell字符串、Shell数组、Shell注释的实操题:
一、Shell字符串
题目1:字符串拼接
编写一个Shell脚本,定义两个字符串变量,将它们拼接在一起并输出。
参考答案:
#!/bin/bash
str1="Hello"
str2="World"
result=$str1$str2
echo $result
题目2:字符串长度计算
编写一个Shell脚本,定义一个字符串变量,计算并输出该字符串的长度。
参考答案:
#!/bin/bash
str="This is a test string"
length=${#str}
echo "The length of the string is: $length"
题目3:字符串替换
编写一个Shell脚本,定义一个字符串变量,将其中的某个子串替换为另一个子串并输出。
参考答案:
#!/bin/bash
str="I like apples"
new_str=${str/apples/bananas}
echo $new_str
二、Shell数组
题目1:数组定义与遍历
编写一个Shell脚本,定义一个包含5个元素的数组,并遍历数组输出每个元素。
参考答案:
#!/bin/bash
array=(1 2 3 4 5)
for element in "${array[@]}"
doecho $element
done
题目2:数组元素查找
编写一个Shell脚本,定义一个数组,查找并输出数组中是否存在某个特定元素(例如元素3)。
参考答案:
#!/bin/bash
array=(1 2 3 4 5)
target=3
for element in "${array[@]}"
doif [ $element -eq $target ]; thenecho "Found $target in the array"breakfi
done
题目3:数组元素添加
编写一个Shell脚本,定义一个数组,向数组中添加一个新元素并输出整个数组。
参考答案:
#!/bin/bash
array=(1 2 3)
new_element=4
array+=($new_element)
for element in "${array[@]}"
doecho $element
done
三、Shell注释
题目1:单行注释
编写一个Shell脚本,包含一段代码和单行注释,注释解释代码的功能。
参考答案:
#!/bin/bash
# This line calculates the sum of two numbers
num1=5
num2=3
sum=$((num1 + num2))
echo "The sum is: $sum"
题目2:多行注释
编写一个Shell脚本,包含一段代码和多行注释,注释解释代码的功能。
参考答案:
#!/bin/bash
: '
This script will:
- Define two variables
- Calculate their sum
- Output the result
'
num1=10
num2=20
sum=$((num1 + num2))
echo "The sum is: $sum"
题目3:脚本功能注释
编写一个Shell脚本,在脚本开头用注释描述脚本的整体功能。
参考答案:
#!/bin/bash
# This script is used to demonstrate basic arithmetic operations in Shell.
num1=7
num2=4
sub=$((num1 - num2))
echo "The difference is: $sub"