一、printf命令
- printf命令与echo命令的区别
区别一:printf不会自动换行,echo自动换行
区别二:printf一般用于格式打印,echo用于标准输出
2.printf语法结构:
printf format-string 参数列表
3.示例代码:
printf "%-8s %-8s %-8s\n" 姓名 性别 体重kg
printf "%-8s %-8s %-8s\n" a 1 1kg
printf "%-8s %-8s %-8s\n" b 1 1kg
printf "%-8s %-8s %-8s\n" c 1 1kg
# "%-8s"表示一个宽度为8个字符的内容 "-"表示左对齐
# 使用单引号也可以
结果:
姓名 性别 体重kg
a 1 1kg
b 1 1kg
c 1 1kg
- printf转义字符:
printf " \"<%s>\" \n" "hello"
二、函数
- 语法结构:
function 方法名(){
代码
} - 示例代码:
function test(){
echo "hello"
echo "第1个参数: $0"
echo "第2个参数: $1"
echo "第3个参数: $2"
echo "第4个参数: $3"
}
调用:
test "a" "b" "c"
结果:
hello
第1个参数: ./hello.sh
第2个参数: a
第3个参数: b
第4个参数: c
- 函数的返回值
3.1 函数默认是将标准输出传递出来,不是返回值,例如:
function test(){
echo "hello"
echo "第1个参数: $0"
echo "第2个参数: $1"
echo "第3个参数: $2"
echo "第4个参数: $3"
}
a=`test "a" "b" "c"`
echo ${a}
结果:
hello 第1个参数: ./hello.sh 第2个参数: a 第3个参数: b 第4个参数: c
3.2 调用函数无需加(),直接写函数名
3.3 使用$?接收上一程序的返回值状态,一般是0和1
三、重定向
1.1 输入重定向
语法结构:
wc 文件名称
示例代码:
wc fileA.sh #将fileA中的内容读取到控制台,有三个信息,第一个参数:文本行数,第二个参数:文本词数,第三个参数:字节大小。
如图:
控制台及源文件
1.2 输出重定向
1.2.1 ">" :把方向指向一份文件,那么将该文件中的内容删除,写入新的内容
示例:
fileA代码:
cat fileA.sh | while read line
do
echo "${line}"
done
echo "我在文件A中" >fileB.sh
fileB代码:
echo "文件B"
执行A,查看fileB.sh结果,此时发现文件B中的内容被替换了:
我在文件A中
1.2.2 ">>":追加
fileA代码:
cat fileA.sh | while read line
do
echo "${line}"
done
echo "我在文件A中" >>fileB.sh
fileB代码:
echo "文件B"
执行A,查看fileB.sh结果,此时发现文件B中的内容被追加了一句:
文件B
我在文件A中
网友评论