首先,免责声明:我对此很新 .
我正在尝试为作业编写一个简单的bash脚本 . 我需要将日期,手指和正常运行时间的输出打印到stdout和文件 . 从我正在阅读的内容来看,退出失败似乎是因为进程在子shell中运行,但从阅读开始,我真的不明白如何去做 . 我发现使用管道和通过T恤输入重定向给了我想要的结果,但它不会退出 . 除了管道,特别是打字:|每行上的T恤Time_Script_Output.txt看起来非常低效,我正在寻找一种更简洁的方式来编写脚本 .
码:
#! /bin/bash
bash
/bin/date | tee Time_Script_Output.txt &
/usr/bin/finger | tee Time_Script_Output.txt &
/usr/bin/uptime | tee Time_Script_Output.txt
exit
谢谢!,尼克卡瓦纳
1 回答
第一条
bash
行不正确 . 假设您手动运行此脚本(bash script.sh
),则每次运行脚本时都会进入新的bash会话 . 查看echo $SHLVL
的输出,看看你走了多远(也是ps faxww
的输出) . 删除该行 .您可能也不希望在后台运行前两个管道,您希望命令运行并在下一个命令运行之前写入输出,或者您可能在输出中遇到排序问题 .
您最后也不需要显式
exit
. 脚本将在自动结束时退出 .您可以使用
{}
分组仅使用一次管道: