Bash 脚本入门
Alex Scriven
Data Scientist
在 Bash 脚本中,程序有三个"流":
默认情况下,这些流来自并输出到终端。
您可能会在脚本调用中看到 2> /dev/null;将 STDERR 重定向为丢弃。(1> /dev/null 是 STDOUT)
下图以先前的管道为例,展示了标准流:

有一个包含 3 行数据的文本文件(sports.txt)。
football
basketball
swimming
命令 cat sports.txt 1> new_sports.txt 会从文件读取并将 STDOUT 写入新文件。再执行 cat new_sports.txt 查看结果
football
basketball
swimming
Bash 脚本的一个关键概念是参数(arguments)
在脚本调用后加空格再加参数,脚本即可在内部使用这些参数。
$ 访问:第一个 $1,第二个 $2,以此类推。$@ 和 $* 给出 ARGV 中的所有参数$# 给出参数个数来看一个示例脚本(args.sh):
#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
现在运行 bash args.sh one two three four five
one
two
one two three four five
There are 5 arguments
#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
Bash 脚本入门