linux 命令详解 二十一

   3.  echo命令:
   
该命令主要用于将其参数打印到标准输出。其中-e选项使得echo命令可以无限制地使用转义序列控制输出的效果。下面的列表给出常用的转义序列。

转义序列

功能

\c

不换行打印

\n

换行

\t

制表符

\\

反斜杠

    echo还提供了一个常用的-n选项,其功能不输出换行符。

    /> echo The username is $LOGNAME
    The username is stephen
    #
下面命令的输出中的“/>”表示命令行提示符。
    /> echo -e "\tHello World\c"
        Hello World />
    /> echo -n "Hello World"
    Hello World />

    4.  printf命令:
    
该命令和C语言中的printf函数的功能相同,都用用来格式化输出的。格式包括字符串本身和描述打印效果的字符。定义格式的方法和C语言也是完全一样的,即在%后面跟一个说明符,如%f表示后面是一个浮点数,%d表示一个整数。printf命令也同样支持转义序列符,其常用转义序列如下:

转义序列

功能

\c

不换行打印

\n

换行

\t

制表符

\\

反斜杠

\"

双引号

    其常用的格式化说明符列表如下:

说明符

描述

%c

ASCII字符

%d,%i

十进制整数

%f

浮点格式

%o

不带正负号的八进制值

%s

字符串

%u

不带正负号的十进制值

%x

不带正负号的十六进制值,其中使用a-f表示10-15

%X

不带正负号的十六进制值,其中使用A-F表示10-15

%%

表示%本身

    下面是printf的一些常用使用方式:
    /> printf "The number is %.2f.\n" 100   这里.2f表示保留小数点后两位
    The number is 100.00.
    #%-20s
表示一个左对齐、宽度为20个字符字符串格式,不足20个字符,右侧补充相应数量的空格符。
    #%-15s
表示一个左对齐、宽度为15个字符字符串格式。
    #%10.2f
表示右对齐、10个字符长度的浮点数,其中一个是小数点,小数点后面保留两位。
    /> printf "%-20s%-15s%10.2f\n" "Stephen" "Liu" 35
    Stephen             Liu                 35.00
    #%10s
表示右对齐、宽度为10的字符串,如不足10个字符,左侧补充相应数量的空格符。
    /> printf "|%10s|\n" hello
    |     hello|
    printf中还有一些常用的标志符,如上面例子中的符号(-),这里我们在介绍一个比较常用的标识符"#"
    #
如果#标志和%x/%X搭配使用,在输出十六进制数字时,前面会加0x/0X前缀。
    /> printf "%x %#x\n" 15 15
    f 0xf

 

 5.  变量替换运算符:
    bash
中提供了一组可以同时检验和修改变量的特定修改符。这些修改符提供了一个快捷的方法来检验变量是不是被设置过,并把输出结果输出到一个变量中,见下表:

修改符

描述

用途

${variable:-word}

variable被设置且非空,则返回该值,否则返回word,变量值不变。

如变量未定义,返回默认值。

${variable-word}

variable未被设置,则返回word,变量值不变,如果设置变量,则返回变量值,即使变量的值为空值。

如变量未设置,返回默认值。

${variable:=word}

variable被设置且非空,则返回该值,否则设置变量为word,同时返回word

如果变量未定义,则设置其为默认值。

${variable=word}

variable未设置,则设置变量为word,同时返回word,如果variable被设置且为空,将返回空值,同时variable不变。否则返回variable值,同时variable不变。

如果变量未设置,则设置其为默认值。

${variable:+word}

variable被设置且非空,则返回word,否则返回null,变量值不变。

用于测试变量是否存在。

${variable+word}

variable被设置(即使是空值),则返回word,否则返回空。

用于测试变量是否设置。

${variable:?word}

variable被设置且非空,则返回该值,否则显示word,然后退出Shell。如果word为空,打印"parameter null or not set"

为了捕捉由于变量未定义所导致的错误。

${variable:offset}

variableoffset位置开始取,直到末尾。

 

${variable:offset:length}

variableoffset位置开始取length个字符。

 

 #${variable:-word}的示例,其C语言表示形式为:
    #    if (NULL == variable)
    #        return word;
    #    else
    #        return $variable;
    /> unset var_name                        #将变量var_name置为空。
    /> var_name=
    /> echo ${var_name:-NewValue}    #var_name为空,因此返回NewValue
    NewValue
    /> echo $var_name                        #var_name的值未变化,仍然为空。

    /> var_name=OldValue                   #var_name赋值。
    /> echo ${var_name:-NewValue}    #var_name非空,因此返回var_name的原有值。
    OldValue
    /> echo $var_name                        #var_name的值未变化,仍然OldValue
    OldValue

    #
${variable-word}的示例,其伪码表示形式为:
    #    if (variable is NOT set)
    #        return word;
    #    else
    #        return $variable;
    /> unset var_name                         #取消该变量var_name的设置。
    /> echo ${var_name-NewValue}    #var_name为空,因此返回NewValue
    NewValue
    /> echo $var_name                        #var_name的值未变化,仍然为空。

    /> var_name=OldValue                   #var_name赋值,即便执行var_name=,其结果也是一样。
    /> echo ${var_name-NewValue}    #var_name非空,因此返回var_name的原有值。
    OldValue
    /> echo $var_name                        #var_name的值未变化,仍然OldValue
    OldValue

 

 

你可能感兴趣的:(linux,职场,操作系统,休闲)