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} |
从variable的offset位置开始取,直到末尾。 |
|
${variable:offset:length} |
从variable的offset位置开始取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
转载于:https://blog.51cto.com/andra/814900