ShellShell

Shell脚本语言:printf命令、函数及输入输出重定向(6)

2018-08-03  本文已影响44人  095b62ead3cd

一、printf命令

  1. 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
  1. printf转义字符:
printf " \"<%s>\" \n" "hello"

二、函数

  1. 语法结构:
    function 方法名(){
    代码
    }
  2. 示例代码:
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
  1. 函数的返回值
    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中
上一篇 下一篇

猜你喜欢

热点阅读