好的,突然间发生了一些有趣的事情。这个测试bash test yield“echo:command not found”
for i in `cat /mnt/usb/liste.txt `; do [ -f /mnt/usb/lsdvd.xml/$i ] || echo $i; done
用于正常工作(在文件中每个项目liste.txt试图找到相应的目录,打印的名称,如果没有找到),并用来产生目录缺少的名字。现在,这个命令产量
echo: command not found
echo: command not found
echo: command not found
(...)
我使用[[...]]和而不是“[..]”,但无济于事“测试”已经试过。
任何想法可能发生在我心爱的bash,而我没有看:) :)?
谢谢, 基督徒。
编辑(设置-x输出):
(...)
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_GHOST_WRITER.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_IMAGINARIUM_OF_DOCTOR_PARNASSUS.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_INFORMANT.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_INTERNATIONAL.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_MEN_WHO_STARE_AT_GOATS.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_OTHER_MAN.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_QUEEN.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_READER.lsdvd.xml ']'
+ for i in '`cat /mnt/usb/liste.txt`'
+ '[' -f /mnt/usb/lsdvd.xml/THE_REBOUND.lsdvd.xml ']'
+ $'\302\240echo' THE_REBOUND
+ '[' -x /usr/lib/command-not-found ']'
+ /usr/bin/python /usr/lib/command-not-found -- $'\302\240echo'
echo: command not found
+ return 127
(...)
有你尝试双引号'$ i'? – 2011-03-21 17:47:54
如果用'echooooo $ 1替换行的末尾;完成',它会给出一个错误'echooooo:command not found'?那个“command not found”错误是我在bash命令提示符下输入垃圾时得到的。如果你用'/ bin/echo'替换它会怎么样? – 2011-03-21 17:56:51
将'set -x'添加到脚本的顶部,并观察shell执行的每条命令。 – bobbogo 2011-03-21 18:17:09