1

テキストファイルのリストで呼び出された特定のファイルが特定のディレクトリにあるかどうかをテストしようとしています。時々 (そして、毎回同じステートメントを使用していると確信しています)、echoコマンドが見つからないというエラーが表示されます。

私のディレクトリにあるテキストファイルは/audio/playlists/、それらが使用される予定の日付に従って名前が付けられてい20130715.txtます: たとえば、今日:

me@computer:/some/dir# ls /audio/playlists/
20130715.txt  20130802.txt  20130820.txt  20130907.txt  20130925.txt
20130716.txt  20130803.txt  20130821.txt  20130908.txt  20130926.txt
(...)

me@computer:/some/dir# cat /audio/playlists/20130715.txt
#A Comment line goes here
00:00:00 141-751.mp3
00:03:35 141-704.mp3
00:06:42 140-417.mp3
00:10:46 139-808.mp3
00:15:13 136-126.mp3
00:20:26 071-007.mp3
(...)
23:42:22 136-088.mp3
23:46:15 128-466.mp3
23:50:15 129-592.mp3
23:54:29 129-397.mp3

事実はこれで終わりです。次のステートメントはtest、指定されたディレクトリ内のすべてのテキストファイルで呼び出されたすべてのファイルが実際にはディレクトリ内のファイルであるかどうかを示しており/audio/mp3/、エラーを生成します。

me@computer:/some/dir# for i in $(cat /audio/playlists/*.txt|cut -c 10-16|sort|uniq); do [ -f "/audio/mp3s/$i.mp3" ] || echo $i; done
 echo: command not found
me@computer:/some/dir#

「A Comment」行 (実際には ) がファイルではないことについて不平を言いたいと思い ますが、なぜそれが見つからないのでしょうか? 繰り返しますが、これはほとんどの場合機能しますが、時々このエラーが発生します。どんな助けでも大歓迎です。bash" line "echo

4

1 に答える 1

3

その前のスペースechoは U+0020 ではなく、U+00A0 です。実際、コマンド" echo"は存在しません。

于 2013-07-15T07:15:50.680 に答える