shell命令之echo命令详解

  • 显示普通字符串:
#带双引号不带双引号输出的结果一致,双引号可省略
echo "It is a test"
echo It is a test    
  • 显示转义字符:
echo "\"It is a test\""

输出如下:

"It is a test"
  • 显示变量:
    read 命令一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收。
    测试文件 test.sh 代码如下:

    read firstStr secondStr
    echo "第一个参数:$firstStr; 第二个参数:$secondStr"

    输出结果:

    sh test.sh 
    一 二 三 四
    第一个参数:一; 第二个参数:二 三 四
  • 显示换行:

    echo -e "OK! \n" # -e 开启转义
    echo "It it a test"

    输出结果:

    OK!
    
    It it a test
  • 不显示换行:

    
    #!/bin/sh
    
    echo -e "OK! \c" # -e 开启转义 \c 不换行
    echo "It is a test"

    输出结果:

    OK! It is a test
  • 显示结果定向至文件:

    echo "It is a test" > myfile
  • 原样输出字符串,不进行转义或取变量(用单引号):

    echo '$name\"'

    输出结果:

    $name\"
  • 显示命令执行结果:

    echo `date` #注意这里使用的是反引号 `, 而不是单引号 '。

    输出结果:

    Thu Jul 24 10:08:46 CST 2014
  • echo输出字符串总结:
能否引用变量 能否引用转移符 能否引用文本格式符(如:换行符、制表符)
单引号
双引号
无引号

- 补充说明:
1. echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
2. echo相关参数说明如下:

参数:
-n 不要在最后自动换行
-e 打开反斜杠ESC转义。
开启转义后,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;

猜你喜欢

转载自blog.csdn.net/wz947324/article/details/79990553