Bash脚本nmap nse扫描中出错

Bash脚本nmap nse扫描中出错,bash,scripting,nmap,Bash,Scripting,Nmap,我正在找一份笔试的新工作,我想多了解一下bash会很有用。我在这方面遇到了问题: #!/bin/bash for ip in $(cat webSerVer.txt |grep "192.168.19"|cut -d" " -f5);do nmap $ip --script smb‐os-discovery.nse > smb‐os-discovery.txt done 我得到以下错误: NSE: failed to initialize the script engine: /u

我正在找一份笔试的新工作,我想多了解一下bash会很有用。我在这方面遇到了问题:

#!/bin/bash

for ip in $(cat webSerVer.txt |grep "192.168.19"|cut -d" " -f5);do

nmap $ip --script smb‐os-discovery.nse > smb‐os-discovery.txt

done
我得到以下错误:

NSE: failed to initialize the script engine:
/usr/bin/../share/nmap/nse_main.lua:685: Bad script rule:
    smb‐os-discovery.nse ->  <eof> expected near char(226)
stack traceback:
    [C]: in function 'error'
    /usr/bin/../share/nmap/nse_main.lua:685: in function 'get_chosen_scripts'
    /usr/bin/../share/nmap/nse_main.lua:1271: in main chunk
    [C]: in ?

QUITTING!
NSE:未能初始化脚本引擎:
/usr/bin/./share/nmap/nse_main.lua:685:错误的脚本规则:
smb-os-discovery.nse->预计接近字符(226)
堆栈回溯:
[C] :在函数“error”中
/usr/bin/./share/nmap/nse\u main.lua:685:在函数“获取所选脚本”中
/usr/bin/./share/nmap/nse_main.lua:1271:in main chunk
[C] :在哪?
退出!
要使此脚本针对所有IP运行Nmap,我缺少什么?如果我运行
cat webSerVer.txt | grep“192.168.19”| cut-d”“-f5
,我会得到一个IP列表,因此我知道这是正确的

我的nmap命令似乎是导致问题的行


提前感谢。

这与bash脚本无关。Nmap(或者更确切地说是嵌入Nmap中的Lua解析器)抱怨smb os discovery(或其中包含的一个库)中某处存在UTF8编码字符。Lua可以处理Unicode字符串,但不能处理Unicode标识符。
char(266)
part表示文件中有一个
\xe2
字节。这闻起来有点像MS Word错误的复制粘贴,因为Word使用的奇特的左引号和右引号(U+2018、U+2019、U+201C、U+201D)都编码为以
\xe2
开头的3字节UTF-8序列


要解决此问题,请使用Nmap附带的脚本,或直接从Nmap.org下载。

看起来U&L stack站点上可能有很好的资源-如果您在Windows中创建了任何文件,然后将其移动到Linux/Unix,请使用
dos2unix file1 file2…
。祝您好运。嗨,不,IP列表来自另一个Nmap扫描我已经把它们切掉了,这样我就可以得到IP了。我想对bash循环中的IP运行nmap扫描。那么你是说
预期的接近char(226)
的错误消息是假的?char 226是什么?