Shell脚本语言

通配符

是用来匹配文件名或路径名的特殊字符。在Linux系统中,通配符常用于文件操作命令中,比如`ls`、`cp`、`mv`等命令,用于匹配文件名或路径名。以下是常用的通配符及其含义:

1. `*`:匹配零个或多个字符。例如,`*.txt`匹配所有以 `.txt` 结尾的文件名。
2. `?`:匹配任意单个字符。例如,`file?.txt`匹配 `file1.txt`、`file2.txt` 等。
3. `[]`:匹配指定范围内的字符。例如,`[abc]`匹配字符 `a`、`b` 或 `c`;`[0-9]`匹配数字 `0` 到 `9`。
4. `!`:排除特定字符或范围。例如,`[!0-9]`匹配除数字外的任意字符。

通配符可以帮助你更灵活地匹配文件名,从而实现更精确的文件操作。在编写脚本时,通配符经常与循环或条件语句一起使用,以便批量处理符合特定条件的文件。

好的,以下是一些具体的例子:

1. 使用 `*` 匹配任意多个字符:
   - `ls *.txt`:列出当前目录中所有以 `.txt` 结尾的文件。
   - `cp file* /destination`:复制当前目录中所有以 `file` 开头的文件到目标目录。
   - `rm file*`:删除当前目录中所有以 `file` 开头的文件。

2. 使用 `?` 匹配单个字符:
   - `ls file?.txt`:列出当前目录中所有类似于 `file1.txt`、`file2.txt` 这样的文件。
   - `cp ?.txt /destination`:复制当前目录中所有单个字符加 `.txt` 结尾的文件到目标目录。
   - `rm file?.txt`:删除当前目录中所有类似于 `file1.txt`、`file2.txt` 这样的文件。

3. 使用 `[]` 匹配指定范围内的字符:
   - `ls [abc]*`:列出当前目录中所有以 `a`、`b` 或 `c` 开头的文件名。
   - `cp [0-9]* /destination`:复制当前目录中所有以数字开头的文件到目标目录。
   - `rm [!0-9]*`:删除当前目录中所有不以数字开头的文件。

这些例子可以帮助你理解如何在具体的文件操作命令中使用通配符来匹配文件名。

输入输出

echo "hello,world!"




read age
echo "age is $age"



read a
read b
echo "$((a+b))"
数字计算需要(())

条件语句

  • -lt: 表示小于(less than)
  • -gt: 表示大于(greater than)
  • -eq: 表示等于(equal)
  • -ge: 表示大于等于(greater than or equal to)
  • -le: 表示小于等于(less than or equal to)
read age
if [ age -ge 18 ]; then
        echo "yes"
else
        echo "no"
fi



if [ -f "main.c" ]; then#检查是否存在“main.c”文件(-d 检查目录)
        echo "yes"
else
        echo "no"
fi

echo "Choose an option: A, B, or C"
read option

case "$option" in
    A)
        echo "Option A selected."
        ;;
    B)
        echo "Option B selected."
        ;;
    C)
        echo "Option C selected."
        ;;
    *)
        echo "Invalid option."
        ;;
esac




#在Shell脚本中,`fi` 是 `if` 语句的结束标记。
#`fi` 是 `if` 反过来拼写的,表示结束。因此,每个 `if` 语句都必须以 `fi` 结束,以表示该语句的范围。
#这样Shell解释器才能正确地识别和执行 `if` 语句。

循环语句

for i in {1..5}; do
    echo "Number: $i"
done


count=0
while [ $count -lt 5 ]; do
    echo "Count: $count"
    ((count++))
done

文件操作

while IFS= read -r line; do
    echo "Line: $line"
done < filename.txt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值