内容一:Shell脚本语言-文件包含
语法一: ./filename
文件A-A.sh
脚本内容
#!/bin/bash
echo "我是文件A"
文件B-B.sh
脚本内容
#!/bin/bash
#文件B包含文件A
./A.sh
echo "我是文件B"
执行脚本命令
./B.sh
语法二: source filename
注意:source是一个关键字
文件A-A.sh
脚本内容
#!/bin/bash
echo "我是文件A"
文件B-B.sh
脚本内容
#!/bin/bash
#文件B包含文件A
source ./A.sh
echo "我是文件B"
执行脚本命令
./B.sh
内容二:Shell脚本语言-cat命令-简单介绍
作用:
作用一:查看文件内容
作用二:连接文件
作用三:创建一个文件或者多个文件
作用四:重定向输出到终端
作用五:重定向到文件
语法:cat[选项][文件]
案例演示
案例一:查看文件内容
cat fileA.sh
案例二: cat -n A.sh
-n选项:可以显示文件内容和行号
案例三: cat -b A.sh
-b选项:和“-n”类似功能,但是只标记非空白行行号
案例四: cat -e A.sh
-e选项:在每一行内容最后加入了一个“$”符号,在需要将多行内容转换为一行内容的时候,非常有用
案例五:cat
接受标准输入,同时还会输出标准输出(敲回车键)
退出:control + C
内容三:Shell脚本语言-获取用户输入-read命令
1、接收一个输入内容
写法一:
echo "请输入你的名字"
read name
echo "你的名字是:${name}"
方法二:
read -p "请输入你的名字:" name
echo "您的名字是:${name}"
2、超时-输入的时候,过了多少秒没有输入,就过期
计时器
if read -t 6 -p "请输入你的名字:" name
then
echo "您的名字是:${name}"
else
echo
echo "超时"
fi
3、隐藏输入的内容-"-s"-类似于输入密码
read -s -p "请输入您的密码:" pwd
echo "您的密码是;${pwd}"
4、从文件里里面读取内容
cat A.sh | while read line
do
echo "内容: ${line}"
done
接受输入一行:read name
接受输入多行:while read name
内容四:Shell脚本语言-printf命令使用
1、printf命令和echo命令区别
区别一
printf "不会自动换行"
echo "自动换行"
区别二
printf:一般用于格式打印
echo:用于标准输出
2、printf语法结构
printf format-string 参数列表
3、printf案例
案例一
printf "%-10s %-8s %-4s \n" 姓名 性别 体重kg
printf "%-10s %-8s %-4s \n" 张三 男 86kg
注意一: "%-10s"指的是一个宽度为10个字符,"-"表示左对齐假设,%-4s 长度:“AndyAndy”
s:表示字符串(字符)
注意二:"%-4.2f"指的是一个宽度为4,小数点2位,"f"表示小数
printf "%-4.2f \n" 100
案例二
printf format-string 为双引号
printf "%d %s \n" 1 "abc"
printf format-string 为单引号
printf '%d %s \n' 1 "abc"
printf format-string 没有引号
只可以一个允许
printf %d 1
4、printf转义字符
printf " \"<%s>\" " "XQ"
内容五:Shell脚本语言-函数
1、语法结构
[function] 方法名称(){
逻辑代码
}
2、案例分析
定义方法
function testFunc(){
echo "Hello World"
}
调用方法
echo "调用前"
testFunc
echo "调用后"
内容六:Shell脚本语言-输入、输出重定向
1、 输入重定向
语法结构:wc 文件名称
1.1 "<" 输入重定向
命令代码:wc A.sh
将A.sh中的内容读取到控制台
wc读取到了三个重要信息
第一个参数:文本行数
第二个参数:文本词数
第三个参数:文本字节数
2、输出重定向
2.1 ">": 我们把方向指向一份文件,那么将文件中的内容删除,写入新的内容
脚本文件A.sh代码
#!/bin/bash
echo "我是文件A"
脚本文件B.sh代码
#!/bin/bash
echo "我是文件B"
echo "北京欢迎你" > A.sh
执行脚本代码
./B.sh
总结:替换内容-将B.sh输出内容替换了A.sh中内容
2.2 ">>" 追加