shell脚本:
- 文件包含
- cat命令介绍
- 获取用户输入_read命令
- printf命令使用
- 函数
- 输入/输出重定向
文件包含
- 语法一: ./filename
文件A ->A.sh
脚本内容:
#!/bin/bash
echo "我是文件A"
文件B ->B.sh
脚本内容:
#!/bin/bash
#文件B包含文件A
./A.sh(这里指的是A.sh的路径)
echo "我是文件B"
然后执行脚本命令
./B.sh
执行完./B.sh后,会输出
我是文件A
我是文件B
- 语法二: source filename.sh
注意: source是一个关键字
文件A->A.sh
脚本内容:
#!/bin/bash
echo "我是文件A"
文件B ->B.sh
脚本内容:
#!/bin/bash
#文件B包含文件A
source ./A.sh
echo "我是文件B"
执行脚本命令:
./B.sh
执行完./B.sh后,同样会输出
我是文件A
我是文件B
cat命令介绍
作用:
- 查看文件内容
- 连接文件
- 创建一个文件或者多个文件
- 重定向输出到终端
- 重定向到文件
语法: cat [选项] [文件]
案例一: cat A.sh
查看文件内容
#!/bin/bash
echo "我是文件A"
案例二:cat -n A.sh
-n :可以显示文件内容和行号
1 #!/bin/bash
2 echo "我是文件A"
案例三:cat -b A.sh
-b选项: 和"-n"类似功能,但是只标记非空白行行号
1 #!/bin/bash
2 echo "我是文件A"
案例四: cat -e A.sh
-e选项:在每一行内容最后加上了一个$符号,在需要将多行内容转换为一行
内容的时候,非常有用
#!/bin/bash$
$
echo "?M-^HM-^Q?M-^X??M-^VM-^G件A"$
案例五:
接收标准输入,同事还会输出标准输出
退出:control + c
获取用户输入_read命令
- 接收一个输入内容
写法一:
echo "请输入您的名字"
read name
echo "您的名字是:${name}"

写法二:
read -p "请输入您的名字" name
echo "您的名字是: ${name}"

- 超时->输入的时候,你过了n秒(这里是6秒)没有输入,就会提示超时
if read -t 6 -p "请输入你的名字: " name
then
echo "您的名字是:${name}"
else
echo
echo "超时"
fi

当6秒之内容输入

- 隐藏输入的内容->"-s"->类似于输入密码
read -s -p "请输入您密码: " pwd
echo
echo "您的密码是: ${pwd}"

输入密码后

- 从文件里面读取内容->通过cat命令读取文件内容,然后通过while循环一行行读取
cat B.sh | while read str
do
echo "内容:${str}"
done

printf命令使用
- printf命令和echo命令区别?
区别一:
printf-->不会自动换行
echo -->自动换行
区别二:
printf-->一般用于格式打印
echo -->用于标准输出
- printf语法结构
printf format-string 参数列表
- printf案例
案例一:
#打印输出表头
printf "%-10s %-8s %-4s \n" 姓名 性别 体重kg
#打印输出内容->对齐
printf "%-6s %-8s %-4s \n" 111 男 64kg
printf "%-10s %-8s %-4s \n" 222 男 65kg
printf "%-1s %-8s %-4s \n" 444 男 100kg

注意一:
"%-10s"指的是一个宽度为10的字符,
"-"表示左对齐,
"s"表示字符串(字符)
注意二:
"%-4.2f"指的是一个宽度为4,
小数点为2位,
"f"表示小数
案例二:
printf format-string为双引号
printf "%d %s \n" 1 "lk"
printf format-string为单引号
printf '%d %s \n' 1 "lk"
printf format-string没有引号
printf %d "Dream"
多个参数输出
printf "%d %s \n" 1 "lk"
- printf转义字符
printf "\"<%s>\" " "lk"
函数
- 语法结构
[function]方法名称(){
}
- 案例分析
定义方法
function test(){
echo "Hello world"
}
调用方法
echo "调用前"
test
echo "调用后"
输入/输出重定向

- 输入/输出重定向->控制台/文件
1.输入重定向->语法
语法结构:wc 名称
2.<:输入重定向
命令代码: wc A.sh
将A中内容读取到控制台
wc读取到了三个重要信息
第一个参数: 文本行数
第二个参数:文本词数
第三个参数:文本字节数
3.<<:创建文件
- 输出重定向

1. > 我们把方向指向一份文件,那么将文件中的内容删除,写入新的内容
脚本文件A.sh
#!/bin/bash
echo "我是文件A"
脚本文件B.sh
#!/bin/bash
echo "我是文件B"
echo "Hello lk" >A.sh
执行脚本代码
./B.sh
替换内容->将B.sh输出内容替换了A.sh中内容
2. ">>":追加
网友评论