我创建了一个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信息将非常感激。
谢谢!
答案 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
中会抑制但不能消除换行符