命令:let 和 expr

let 命令
let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。
运算符间不能有空格,如果表达式中包含了空格或其他特殊字符,则必须引起来。
var=1

let "var+=1" # 或 let var+=1 这种写法运算符间不能有空格
echo $var
output:2

let可以用(())代替,let ″j=i*6+2″等价于((j=i*6+2))

expr命令
将需要运算的表达式写入在expr 后面,保证参数与运算符号中间有空格隔开。
var=1
var=`expr $var + 1` #如果没有空格,即var=`expr $var+1` 则输出为1+1
echo $var
output:2

'>' 与‘>>’区别

在shell中
'>'  为创建: echo “hello shell”  > out.txt
'>>' 为追加:echo “hello shell”  >> out.txt
当out.txt 文本不存在时,'>'与‘>>’都会默认创建out.txt文本,并将hello shell 字符串保存到out.txt中
当out.txt文本存在时,‘>’会将out.txt文本中的内容清空,并将hello shell 字符串存入
而‘>>’会将 hello shell追加保存到out.txt的末尾

命令:read

#!/bin/bash
echo -n "please input your name:"
read name
echo "welcome !!! $name"
exit 0
[root@host ~]# vim script.sh
#!/bin/bash
read -n10 -t30 -r -s -d $ -p "Enter Password:" password
echo -e "\nThe password your input is:$password"
  • -p 提示语句,后面接输入提示信息,这里为'Enter Password: '
  • -n 参数个数,有时候要限制密码长度,或者其他输入长度限制,比如[Y/N],只输入输入一位,-n1
  • -s 屏蔽回显,屏幕上不显示输入内容,一般用于密码输入
  • -t 等待时间,这里设置30秒,30秒内未输入或者输入不全,终止
  • -d 输入界限,这里是$,输入到$,自然终止输入
  • -r 屏蔽特殊字符\的转译功能,加了之后作为普通字符处理
    从上面一个例子,基本上囊括了上面的大部分常用功能,特别是-p,-n,-t,-s等参数,可以很好的学习read这个命令

命名: echo

# echo
**
echo - 显示一行文本
-n 不输出行尾的换行符.
-e 允许对下面列出的加反斜线转义的字符进行解释.
\n
换行符
\r
回车符