繁体   English   中英

如何将命令 output 存储在一个变量中而不是一行?

[英]How can I store command output in a variable not on just one line?

命令 output 存储在变量中。 目前,我的脚本将其全部输出在一行上,而不是将其分隔在多行上。 这不是我想要的,因为这样看起来杂乱无章,难以阅读。 如何将命令 output 存储在我的变量中,以便将其打印在多行而不是仅一行上?

#! /bin/bash

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

#Scanning the Ports
ports=$( nmap -sS $IP | grep open)

#Output
echo $ports

例子:

它当前输出的内容

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

我想要什么 output

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

您需要使用引号。

echo "$ports"

当 bash 看到没有引号的行时,它会执行分词。 换句话说,就好像你执行了:

echo 21/tcp open ftp\
22/tcp open ssh\
23/tcp open telnet

它对换行符的处理与空格没有什么不同,并将每个参数传递给 echo。 然后它写入每个参数,用一个空格分隔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM