2015-12-01 161 views
0

我有我的NC命令在一个文本文件,a.txt中,如下:netcat的(NC)抱怨无效端口

/bin/nc -w 3 -zv 123.123.123.123 1195 

如果我跑:bash a.txt,有错误:nc: port number invalid: 1195。 但是,如果我复制nc命令,使用bash提示符运行它。该命令正在工作,没有错误。 有什么想法?谢谢。

操作系统:Ubuntu的14.04

+2

很可能你的文件与UNIX换行符('\ n')相比有DOS换行符('\ r \ n'),所以传递给'nc'的端口号实际上是'$'1195 \ r “'。 –

+2

顺便说一句,StackOverflow上的bash标签告诉你在问问题之前检查它;请参阅http://stackoverflow.com/tags/bash/info中的“询问有问题的代码之前的项目#1” –

+0

如果您运行'bash -x a.txt',顺便说一句,它会向您显示它实际上的命令运行,这将消除所有怀疑。 –

回答

1

也许你的文件有DOS换行符(\r\n),而不是UNIX换行符(\n),因此被传递到nc端口号实际上是$'1195\r'。 - Charles Duffy