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 | 用于打印文件中的总行数、单词数或字节数。 |