我正在运行这个 bash 脚本:
#!/bin/sh
date +"%Y-%m-%d %H:%M:%S " | tr -d 'n' >> /home/test_a5gh/Pub_IP.txt
curl http://checkip.amazonaws.com?newline -s >> /home/test_a5gh/Pub_IP.txt
cat /home/test_a5gh/Pub_IP.txt
创建上述文件后,我将其放在文件夹中/home/test_a5gh/
,然后使脚本可执行:
$ sudo chmod u+x testip.sh
接下来,为了测试脚本,我运行了:
$ ./testip.sh
但是,此命令的输出分为两行。以下是示例:
2011-22-33 16:10:27
111.222.333.444
我需要输出出现在一行上,如下所示:
2011-22-33 16:10:27 111.222.333.444
附加信息:
脚本取自这里。
问题:
有没有办法让这个输出只显示在一行上?
答案1
以下是一种方法:
#!/bin/bash
mydate=$(date '+%Y-%m-%d %H:%M:%S')
myip=$(curl http://checkip.amazonaws.com?newline -s)
printf '%s %s\n' "$mydate" "$myip" >> /home/test_a5gh/Pub_IP.txt
仅供参考,您不需要在自己的主目录中拥有自己的文件sudo
。chmod