gpt4 book ai didi

linux - 如何拆分变量以在行之间打印出其他内容?

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:11 25 4
gpt4 key购买 nike

我创建了一个只显示我的 IP 的脚本。我这样做是为了在 IP 打印到终端时在 IP 周围有一个“框”。

输出看起来像这样:

----------------------------------------------------
|| ||
|| inet 10.0.2.15 ||
|| ||
----------------------------------------------------

现在我制作了一个扫描开放端口的脚本,我也希望在输出周围有一个这样的“框”,但我不知道如何实现它,因为打开的端口数量并不总是相同,并且还因为端口在多行上输出并且全部存储在一个变量中。这意味着我不能把那些“||”在每一行。如何将变量拆分为与打开的端口一样多的字符串,并在它周围制作一个框,无论是否有 3 个或 50 个打开的端口?

到目前为止我的代码:

#! /bin/bash

#User input
echo -n 'Enter target-IP: '
read target

#Portscan
ports=$( nmap -sS $target | grep open)

#Output
echo'-------------------------'
echo "$ports"
echo'-------------------------'

我希望终端的输出是:

----------------------------------------------------
|| ||
|| 21/tcp open ftp ||
|| 22/tcp open ssh ||
|| 23/tcp open telnet ||
|| ||
----------------------------------------------------

如果有任何不清楚的地方,请尽管提问,因为我不确定我是否能够充分描述我的问题。

最佳答案

你有很多格式化选项,awk,bash,...例如 (bash)

echo "$ports" | while read x ; do
printf "|| %-20s ||\n" "$x"
done

关于linux - 如何拆分变量以在行之间打印出其他内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58435558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com