我试图将两个命令的输出作为单行存储到文件中。但是,存储的输出位于两条不同的行上。
脚本:
#!/bin/bash
date > test.log; pwd >> test.log
输出:
~]# cat test.log
Mon Jan 19 23:37:31 PST 2015
/home/jason
如何制作单行?
预期输出
~]# cat test.log
Mon Jan 19 23:37:31 PST 2015 /home/jason
答案 0 :(得分:2)
试试这个:
echo "$(date) $PWD" > test.log
答案 1 :(得分:2)
通常,echo
命令将其参数“展平”为单行输出。当每个命令产生一行输出时,answer给出的John Zwinck效果很好 - 甚至避免使用pwd
命令生成当前工作目录。
如果命令产生多行输出,那么他的公式会在日志中写入多行。例如,如果命令是:
printf "%s\n" line-1 line-2 line-3
printf "%s\n" more-1 more-2 more-3
然后运行:
echo "$(printf "%s\n" line-1 line-2 line-3) $(printf "%s\n" more-1 more-2 more-3)" > test.log
在输出中添加五行。相反,为了得到扁平化,你需要避免引用(这次 - 相对不寻常):
echo $(printf "%s\n" line-1 line-2 line-3) $(printf "%s\n" more-1 more-2 more-3) > test.log
根据需要,这只会在输出中添加一行。
答案 2 :(得分:1)
如果你必须在不同的实例上执行2个命令,但仍需要附加到同一个文件并在同一行上,你可以这样做:
AMD$ echo -n "$(date) " > File
AMD$ echo "$(pwd)" >> File
AMD$ cat File
Tue Jan 20 13:27:41 IST 2015 /home/sdlcb/AMD
答案 3 :(得分:0)
你可以让date
命令在同一行输出日期和另一个命令的输出:
date "+%a, %b %d %T %Z %Y $(pwd)"
Tue, Jan 20 03:12:15 EST 2015 /home/jason
date
命令将接受常规日期格式命令,其中包含您想要输出的任何文字文本。