Linux自动化运维:Shell与Ansible(微课版)
上QQ阅读APP看书,第一时间看更新

1.4 项目实施

任务1.4.1 输入输出重定向

1. 任务描述

编写并执行简单的Shell脚本,使用输入输出重定向及管道符将脚本的信息重定向到文件。

2. 任务实施

(1)创建Shell脚本firstscript.sh,使用vim文本编辑器在用户家目录下创建一个新的文本文件,将其命名为firstscript.sh,插入以下文本并保存文件,将输入重定向到文件中。


[opencloud@server ~]$ cat input.txt 
2021 
2022 
2023 
2024 
2035 
2025 
1999 
2000 
2001 
[opencloud@server ~]$ vim firstscript.sh 
[opencloud@server ~]$ cat firstscript.sh 
#!/bin/bash 
# 从文件中读取输入 
sort < input.txt 

(2)使用bash命令执行脚本。


[opencloud@server ~]$ bash firstscript.sh
[opencloud@server ~]$ cat input.txt

(3)将输出写入文件中。


ls -l > output.txt

(4)追加输出到文件中。


ls -l >> output.txt

(5)将标准错误输出重定向到文件中。


ls -l /non-existent-dir 2>error.log

(6)使用输入重定向忽略read命令的输入。


#!/bin/bash
# 忽略read命令的输入
read -p "Enter your name: " name < /dev/null
echo "Your name is: $name"

(7)从标准输入中读取多行文本。


#!/bin/bash
echo "Enter some text (Ctrl+D to finish):"
cat << EOF
This is line 1
This is line 2
This is line 3
EOF

(8)将多行文本输出到文件。


#!/bin/bash
cat << EOF > output.txt
This is new line 1
This is new line 2
This is new line 3
EOF

(9)将多行文本追加到文件。


#!/bin/bash
cat << EOF >> output.txt
This is line 4
This is line 5
This is line 6
EOF