例如 whoami 和 date。我可以那样做
whoami>/home/user/folder/file
date>>/home/user/folder/file
但我确信它可以在一行中完成,而无需输入路径两次。我尝试过使用
|
但总是忽略第一个命令。
答案1
使用子外壳
(whoami; date) > ~user/directory/file
答案2
您可以使用 echo/printf 以及命令替换通过一次重定向来完成此操作:
printf '%s\n' "$(whoami)" "$(date)" > /home/user/folder/file
在我看来,这不是一个好的解决方案,它的可读性/管理性不是很好......特别是如果添加更多命令的话。
为了避免多次输入路径,您可以将其保存在变量中:
file=/home/user/folder/file
whoami>"$file"
date>>"$file"
但这也需要多次重定向。
如果您想编写一个长脚本或命令子集,并想为它们执行单个重定向,您可以使用命令分组:
{
whoami
date
} > /home/user/folder/file
或者在一行中:
{whoami;date;} > /home/user/folder/file