2012-04-15 15 views
1

エラー:は、二重引用符のためにどのようにスペースを含む名前を自分の名前に

しかし
. 
|-- Christina Aguilera 
| |-- Back To Basics . Ain't No Other Man.mp3 

、スクリプトはこの示しています。それは

ファイルツリーがどのように見えるのではなく、_と現れているように見えます。

. 
|-- Christina Aguilera 
| |-- Back To Basics _ Ain't No Other Man.mp3 

コード:

tag=$(tail -c 128 $path) 
    song_name=$(echo "$tag" | cut -c 4-33 | sed -r 's/ +$//') 
    artist_name=$(echo "$tag" | cut -c 34-63 | sed -r 's/ +$//') 
    album_name=$(echo "$tag" | cut -c 64-93 | sed -r 's/ +$//') 
    test -e "$2/$artist_name" || mkdir "$2/$artist_name" 
    ln -s $path "$2/$artist_name/$album_name _ $song_name.mp3" 
done 

このコードを編集してエラーを解決するにはどうすればよいですか?

答えて

0

質問が分かりませんが、スクリプトの最後の行が_を紹介しているようですので、.に変更してください。それはあなたが望んだことですか?

+0

はい返信いただきありがとうございます。しかし、私はそれを試みただけで、それはディレクトリを作成できませんでした。その他のオプションは? –

+0

コードの一部が欠落しているようです。また、コードが最初に何をすべきかを述べていない。それ以上の情報がなければ、私は本当にあなたを助けることができません、申し訳ありません。 – kini

1

まず、あなたの出力は「_」と表示され、あなたはあなたがする必要があるすべては「.

1

いくつかのアイデアを「_」を置き換えるです「.」とそれを交換したい:

  • デバッグ情報を表示するには、bash -x scriptでスクリプトを実行してみてください。エラーが発生した場所を正確に表示する必要があります。あなたが質問を書き込むと

  • は、エラーを再現します最小の完全なスニペット、およびエラーメッセージの正確なテキストが含まれています。

  • 「ディレクトリを作成できないと言っているだけです」とコメントしました。 mkdirが失敗しているようです。トップレベルのディレクトリ(つまり、何でも$2)は存在しますか?そうでない場合は、mkdir -p "$2/$artist_name"を使用してパス全体を作成します。

  • 簡略化:sed -r 's/ +$//'を使用して空白を削除する代わりに、tr -d ' 'を使用できます。

+0

私はこれをすべて行いましたが、まだそれはありません、私はかなりfreshmeat_linux/Linux]には、どこに何を正確に何をbash -xスクリプトをコーディングするか教えてくれる方法があります。私は_になった。 、 置くことによって "。"しかし、それは私に同じエラーを依然として与える。エラーはあなたのディレクトリとファイルの名前を確認します。 大部分にはスペースが含まれています。名前にスペースを含む名前を二重引用符で囲むことを忘れないでください! –

+0

コマンドラインから**現在の問題スクリプト**を 'bash -x yourProblematicScript.sh'のように実行するか、または1.上の行を'#!/ bin/bash -x'に変更するか、問題があると思われる場所の近くにあるスクリプト、 'set -x';あなたは 'set + x'を使って 'eXpansion'を有効にすることができます。がんばろう。 – shellter

関連する問題