1.引号的使用
将一个$变量表达式放在双引号中,程序执行到这一行会把变量替换为它的值;放在单引号中,不会替换。
字符串通常放在双引号中,防止变量被空白字符分开,同时也允许$扩展。
一个简单的交互式shell脚本
#!/bin/bash
echo "Is it ok?please answer 0 or 1"
read ans
if [ $ans = 0 ]
then
echo "It is great!"
else
echo "I'm sorry!"
fi
exit 0
我们可以看到,这个程序有一个潜在的bug,就是当我们直接输入enter键时,会出现一个报错信息。
分析:这是因为第一个if语句在对变量ans进行测试的时候,输入的可以看成是一个空字符串,即if [ = 0 ],但是这并不是一个合法的条件,避免这种情况的出现,我们可以给变量加上引号(if [ $"ans" = 0 ]),那么会变为if [ " " = 0],那么这就是一个合法的测试条件了。
2.echo 命令
echo 命令是用于输出的,相当于printf,但是echo输出是默认有换行的,要是想要输出不换行,有以下两种方法:
echo -n "hello world"
or
echo -e "hello world\c" 这种方法确保启用了反斜线转义字符(如\c代表去掉换行符,\t 代表制表符)的解释