shell脚本编程 - 输入与输出
2019-01-22 本文已影响103人
会飞的蜗牛07
Shell语言是一种解释性语言,解释器一般默认/bin/bash
。Shell的优点在于有一系列现成的工具可以调用,最迷人的地方在于管道和正则表达,可以使用很简洁的命令完成很多复杂的任务。脚本的使命在于代替人繁杂的重复劳动,所以程序员应该拥抱脚本。
作为脚本语言,处理输入和输出也是Shell的基本功能。
输入命令read
read可以让Shell脚本获取外部输入,这里只讲一下笔者在开发过程中使用过的选项
# -s 不回显输入的内容
read -p "Input passwd:" -s Passwd
# -t 5限时5s输入
read -p "Input a number:" -t 5 Number
输入分界符<<
执行Shell脚本时通常会需要输入一些参数,但是有些脚本是自动化运行的,这就需要脚本能够自动的获取标准输入,这里就用到了输入分界符<<
,例如
# shell脚本
#!/bin/sh
read a
read b
echo $a $b
# 执行命令
./shell <<EOF
12
23
EOF
# 运行结果
12 23
重定向
shell的输出包括标准输出1
和标准错误输出2
,绝大部分时间开发人员远程登陆服务器进行操作,有时候对正确的输出并不是很敏感,为了减少打印数据的传输,可以重定向标准输出
./shell.sh > /dev/null # 等同于1>/dev/null
这样打印出来的就只剩下我们关心的标准错误输出了。
另外一种情况是我们需要将执行的全部结果重定向到某个文件,以方便后期检查
./shell.sh > log 2>&1 # 将标准错误输出重定向到标准输出中,一起重定向到log中
同时输出到屏幕和文件
需要借助于命令tee
echo "hello" | tee file # 将hello同时输出到屏幕和文件file