终端打印

终端打印的常用命令有两个:echo和print

首先,我先介绍echo

1.echo

echo这个命令接受三种形式的参数,实例如下:

echo "Hello World"
echo 'Hello World'
echo  Hello World



这三中形式的命令输出的都是同样的结果,但是,每种方法都有它相应的“副作用”

例如如下的结果:

Linux Shell脚本攻略学习总结:一_终端

从结果中我们可以看出,以双引号为参数的命令并不能识别标点符号,此时,如果仍使用双引号我们可以加上转义字符,并使用 -e 参数

例如:

echo -e "Hello World \!"



2.print

这个命令需要我们联想C语言中的printf函数,因为它使用的方法和作用是一样的,我们看一个实例

#!/bin/bash 
#Filename: printf.sh

printf  "%-5s %-10s %-4s\n" No Name  Mark 
printf  "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456 
printf  "%-5s %-10s %-4.2f\n" 2 James 90.9989 
printf  "%-5s %-10s %-4.2f\n" 3 Jeff 77.564


运行这个实例,我们得到如下的结果

Linux Shell脚本攻略学习总结:一_实例_02


玩转变量

Shell中的变量有如下特点:

1.使用变量并不用声明

2.任何变量的定义方法都是  var=value   注:等号两边不允许有空格

3.任何变量的值都是一个字符串


我们来看一个实例:

#!/bin/bash
#Filename : variables.sh
fruit=apple
count=5
echo "We have $count $fruit(s)"



输出结果如下:

Linux Shell脚本攻略学习总结:一_linux shell_03


附:我们可以通过相应的方法获取变量值的长度:

length=${#var}


例如:

Linux Shell脚本攻略学习总结:一_脚本_04


字段分隔符

IFS(内部字段分隔符)是Shell脚本中的一个重要概念。在处理文本数据时,相当有用。内部字段分隔符是用于特定用途的定界符。IFS是存储定界符的环境变量。它是当前shell环境使用的默认定界字符串。

实例如下:

#!/bin/bash
#passwd_line.sh
#Description: Illustration of IFS
line="root:x:0:0:root:/root:/bin/bash" 
oldIFS=$IFS; 
IFS=":" 
count=0; 
for item in $line; 
do 

[ $count -eq 0 ]  && user=$item; 
[ $count -eq 6 ]  && shell=$item; 
let count++ 
done; 
IFS=$oldIFS 
echo $user\'s shell is $shell;


运行结果如下:

Linux Shell脚本攻略学习总结:一_实例_05