变量自增语法:
a=a+1
字符串拼接语法:
a=$0" "a
shell的终端打印
echo hello world
echo "hello world"
echo 'hello world'
echo "hello world !"
echo 'hello world !'
使用不带引号的echo时,没法在所要显示的文本中使用“;”,因为在bash中被用作命令定界符,(如echo hello;hello为例,第一个echo hello被视为一个命令;hello被视为第二个命令)
单引号与双引号区别:单引号不会对单引号中的变量(如$var)求值,而只是按照原样显示;双引号会对变量中的内容进行解析,返回变量的值。
printf命令
printf “%-5s %-10s %-5s
” num name sex
printf中可以使用格式化字符串,指定字符串的宽度、左右对齐方式等。在默认情况下,printf并不像echo命令一样会自动添加换行符,我们必须在需要的时候手动添加
[root@www file_test]# printf "%-5s %-10s %-5s
" num name sex
num name sex
[root@www file_test]#
[root@www file_test]# printf "%-5s %-10s %-4.2f
" num name 98.6669
num name 98.67
[root@www file_test]#
%s、%f都是格式替代符,其所对应的参数可以置于带引号的格式字符串之后。 %-5s指明了一个格式为左对齐且狂赌为5的字符串替代(-表示左对齐)。宽度指定了保留给某个变量的字符数(字符串不足的,以空格符填充)。对于浮点数,%f,我们可以使用其他参数对小数部分进行舍入。%-4.2f,其中.2f表示保留2个小数位。
一定要注意的是echo和printf中的标记(如-e、-n等)应该出现在命令行内任何字符串之前,否则bash会将其视为另一个字符串。
echo -e "1 2
3"
[root@www file_test]# echo -e "1 2
3"
1 2
3
[root@www file_test]#
[root@www file_test]# echo -e "e[1;31mThis is red teste[0m"
This is red test
[root@www file_test]#
1、在echo中转移换行符
默认情况下,echo会将一个换行符追加到输出文本的尾部。可以使用标记-n来忽略结尾的换行符。echo同样接受双引号字符串内的转义序列作为参数。如果需要使用转义序列,则采用echo -e "包含转义序列的字符串"这种形式。
2、打印彩色输出
e[1;31m将颜色设为红色,e[0m将颜色重新置回。只需将31替换成所需的颜色码就可以了。