shell学习笔记(二)

5 篇文章 0 订阅
本文详细介绍了Shell脚本中的字符串表示、拼接与截取方法,包括不同方式的字符串定义及如何进行字符串操作。此外,还讲解了条件语句如if, if-else, if-elif-else以及test命令的使用。同时,文章涵盖了循环语句while和for的用法,以及select-in循环的基础知识。通过实例解析,帮助读者深入理解Shell脚本中的逻辑控制和数据处理。
摘要由CSDN通过智能技术生成

shell学习笔记(二)

一、shell字符串

字符串表示:
字符串可以由单引号’ '包围,也可以由双引号" "包围,也可以不用引号。

str1=c.biancheng.net
str2="shell script"
str3='C语言中文网'

单引号和双引号前面已经解释过了。不用引号的话字符串之间不能有空格。

字符串拼接:
直接将两个字符串放在一起就好了,简单粗暴。

#!/bin/bash
name="Shell"
url="http://c.biancheng.net/shell/"
str1=$name$url  #中间不能有空格

字符串截取:

格式说明
${string: start :length}从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start}从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length}从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start}从 string 字符串的右边第 start 个字符开始,直到最后。
${string#*chars}从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars}从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%*chars}从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
${string%%*chars}从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

二、条件语句

1、if 语句

if  condition
then
    statement(s)
fi

2、if else语句

if  condition
then
   statement1
else
   statement2
fi

3、if elif else 语句

if  condition1
then
   statement1
elif condition2
then
    statement2
elif condition3
then
    statement3
……
else
   statementn
fi

test命令:
test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test。
test expression = [ expression ]
注意[]和expression之间的空格,这两个空格是必须的,否则会导致语法错误。
例子:

#!/bin/bash
read age

if test $age -le 2; then    
	 echo "婴儿"
elif test $age -ge 3 && test $age -le 8; then    
 	echo "幼儿"
elif [ $age -ge 9 ] && [ $age -le 17 ]; then    
 	echo "少年“
 elif [ $age -ge 18 ] && [ $age -le 25 ]; then    
	 echo "成年"
elif test $age -ge 26 && test $age -le 40; then   
 	 echo "青年"
elif test $age -ge 41 && [ $age -le 60 ]; then    
  	echo "中年"
else    
	echo "老年"
fi

4、case语句

case expression in
    pattern1)
        statement1
        ;;
    pattern2)
        statement2
        ;;
    pattern3)
        statement3
        ;;
    ……
    *)
        statementn
esac

三、循环语句

1、while循环

while condition
do
    statements
done

2、for循环

for((exp1; exp2; exp3))
do
    statements
done

3、select in循环

select variable in value_list
do
    statements
done

四、shell过滤器

命令说明
awk用于文本处理的解释性程序设计语言,通常被作为数据提取和报告的工具。
cut用于将每个输入文件(如果没有指定文件则为标准输入)的每行的指定部分输出到标准输出
grep用于搜索一个或多个文件中匹配指定模式的行。
tar用于归档文件的应用程序。
head用于读取文件的开头部分(默认是 10 行)。如果没有指定文件,则从标准输入读取。
sort用于对文本文件的行进行排序。
tail用于显示文件的结尾部分。
wc用于打印文件中的总行数、单词数或字节数。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值