我知道这个问题的回答方式不同,我已经参考了这里的一些答案以了解我现在的位置。
我正在尝试创建一个脚本,以便在不写入文件夹和病毒扫描文件时实质上监视它们。
我需要它处理的文件/字符串有时会包含空格,有时不会包含空格,有时还会包含特殊字符。目前,它实际上仅适用于名称中带有空格的文件(就像在实际扫描和移动它们时一样),而不适用于没有空格的文件。同样,在每个文件之后(无论是否有空格),while循环都会中断,从而停止脚本并显示以下输出;
communityPlugins: "https://github.com/noxdafox/rabbitmq-message-deduplication/releases/download/0.4.5/elixir-1.8.2.ez"
extraPlugins: "rabbitmq_auth_backend_ldap elixir"
我让它可以处理没有任何空格的文件名,但是由于我引入了./howscan.sh: line 29: snmp.conf: syntax error: invalid arithmetic operator (error token is ".conf")
./howscan.sh: line 34: snmp.conf: syntax error: invalid arithmetic operator (error token is ".conf")
方法来使用数组元素,因此它仅适用于带有空格的文件并输出上述错误。
可以随意省略其中的sepscan部分,因为我确定我是否可以使其与其他任务一起使用(它也可以用于显示完整的脚本,以供全面理解)。< / p>
当前脚本:
"${files[$i]}"
让我知道我是否可以提供其他帮助以澄清我的问题。
更新:
顺便说一下,/ mnt / Incoming / ToScan /目录中有一个名为snmp.conf的文件。
答案 0 :(得分:1)
for i in ${files[*]}
应该是
for i in ${!files[*]}
# or
for i in ${!files[@]}
${files[*]}
扩展到数组的内容并进行分词。上面的语法扩展为数组的索引列表。
您可能还需要对变量加双引号,例如
if [ "$fileopen" -ne 0 ]; then