Shell入门

整理了一个包含多种Shell语法元素的Shell脚本示例,并附有详细的注释。这个脚本展示了变量、条件判断、循环、函数、数组、字符串操作、文件操作等常见的Shell编程技巧,适合初学者学习和参考。

#!/bin/bash

# 1. 变量定义和使用
name="Alice"
age=25
echo "Hello, $name! You are $age years old."

# 2. 只读变量
readonly country="Wonderland"
echo "You are from $country."

# 3. 字符串操作
greeting="Hello, $name!"
echo "Length of greeting: ${#greeting}"  # 输出字符串长度
echo "Substring: ${greeting:7:5}"        # 输出子字符串

# 4. 数组定义和遍历
fruits=("Apple" "Banana" "Cherry")
echo "First fruit: ${fruits[0]}"
echo "All fruits: ${fruits[@]}"

# 遍历数组
for fruit in "${fruits[@]}"; do
    echo "I like $fruit"
done

# 5. 条件判断
if [ $age -gt 18 ]; then
    echo "$name is an adult."
else
    echo "$name is not an adult."
fi

# 6. 多条件判断
if [[ $age -gt 18 && $age -lt 30 ]]; then
    echo "$name is a young adult."
elif [[ $age -ge 30 ]]; then
    echo "$name is getting older."
else
    echo "$name is a teenager."
fi

# 7. case语句
case $age in
    18)
        echo "$name just became an adult."
        ;;
    25)
        echo "$name is 25 years old."
        ;;
    *)
        echo "$name is $age years old."
        ;;
esac

# 8. 循环:for循环
for i in {1..5}; do
    echo "For loop iteration $i"
done

# 9. 循环:while循环
counter=0
while [ $counter -lt 3 ]; do
    echo "While loop iteration $counter"
    counter=$((counter + 1))
done

# 10. 循环:until循环
counter=0
until [ $counter -ge 3 ]; do
    echo "Until loop iteration $counter"
    counter=$((counter + 1))
done

# 11. 函数定义和调用
function greet() {
    local message="Welcome, $1!"
    echo "$message"
}

greet "$name"

# 12. 返回值
function add() {
    return $(($1 + $2))
}

add 3 4
result=$?
echo "3 + 4 = $result"

# 13. 文件操作
filename="example.txt"
echo "Creating file $filename..."
echo "This is a test file." > $filename

# 检查文件是否存在
if [ -f $filename ]; then
    echo "$filename exists."
else
    echo "$filename does not exist."
fi

# 读取文件内容
echo "File content:"
cat $filename

# 删除文件
rm $filename
echo "$filename deleted."

# 14. 命令替换
current_date=$(date)
echo "Current date: $current_date"

# 15. 算术运算
a=10
b=5
sum=$((a + b))
echo "Sum of $a and $b is $sum"

# 16. 退出状态码
exit 0

详细注释说明:

  1. 变量定义和使用:使用=定义变量,使用$引用变量。
  2. 只读变量:使用readonly定义只读变量,不能修改。
  3. 字符串操作:使用${#var}获取字符串长度,使用${var:start:length}获取子字符串。
  4. 数组定义和遍历:使用()定义数组,使用${array[@]}遍历数组。
  5. 条件判断:使用if语句进行条件判断,-gt表示大于,-lt表示小于。
  6. 多条件判断:使用&&表示逻辑与,||表示逻辑或。
  7. case语句:使用case语句进行多条件分支判断。
  8. for循环:使用for循环遍历范围或数组。
  9. while循环:使用while循环在条件为真时重复执行。
  10. until循环:使用until循环在条件为假时重复执行。
  11. 函数定义和调用:使用function定义函数,使用local定义局部变量。
  12. 返回值:使用return返回函数结果,使用$?获取上一个命令的退出状态。
  13. 文件操作:使用>重定向输出到文件,使用cat读取文件内容,使用rm删除文件。
  14. 命令替换:使用$(command)获取命令的输出。
  15. 算术运算:使用$((expression))进行算术运算。
  16. 退出状态码:使用exit指定脚本的退出状态码。

这个脚本涵盖了Shell编程中的大部分常见语法,适合初学者学习和参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

幺洞两肆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值