我正在尝试为我将其带入数组的服务器执行ps
命令,并将该命令的输出转换为变量,然后再将内容的第一行转换为变量。请在下面找到我的代码。
#!/bin/bash
echo "enter the servers names..."
read -a array
for i in "${array[@]}"
do
content=`ps -auxwww | grep $i`
line=${head -1 content}
echo $line
done
exit 0
我无法从$content
获取第一行。请帮助我们如何将第一行再次提取到变量中,然后完全显示第一行。我不想创建一个新文件来保存内容。我想一气呵成。
答案 0 :(得分:1)
您可以直接从unix命令本身获取第1行
content =`ps -auxwww | grep $ i |头-1`
答案 1 :(得分:1)
你可以用这种方式一次性完成:
line=$(ps -auxwww | grep -- "$i" | head -1)
$()
而不是后退嘀嗒--
开头,则grep
会阻止-
失败
$i
括在双引号中是很重要的,以防止由分词和通配引起的问题(您可以使用shellcheck在脚本中捕获此类问题)如果你真的想分两步完成,那么:
content=$(ps -auxwww | grep -- "$i")
line=$(head -1 <<< "$content")
另见: