Linux脚本将多行格式化为1行

时间:2014-07-02 20:04:13

标签: linux bash

我创建了一个linux bash脚本来遍历我的所有服务器,并显示指定帐户的主机名和密码到期日期(由用户输入)。我的问题是我不能让它显示在一行上。它工作正常,只显示第1行的主机名,然后在第2行显示帐户信息,我希望它们都在一行上。

代码:

echo "Enter the account name you want to check: "

read act

echo "you entered: $act - searching for account information"

cat /home/admin/me/linuxhosts | xargs -i ssh {} 'hostname; chage -l '$act' | grep "Password expires";'

任何格式化帮助以获取要在一行显示的主机名和chage信息将非常感激。

谢谢!

2 个答案:

答案 0 :(得分:0)

只需使用命令替换“$()”。它会吃新线。

echo "Enter the account name you want to check: "

read act

echo "you entered: $act - searching for account information"

cat /home/admin/me/linuxhosts | xargs -i ssh {} 'echo $(hostname; chage -l '$act' | grep "Password expires");'

答案 1 :(得分:0)

除非您的实施很奇怪:

grep "Password expires"

应该是

grep "Password Expires"

如果难度是返回正确的行,那将解决它:

sudo chage $user -l | grep "Password Expires"

输出:

Password Expires:       Never

与其他答案一样,封闭在$(...)backticks中会抑制但不能消除换行符