パスにスペースが含まれているサブディレクトリを解決するには? [コピー]

パスにスペースが含まれているサブディレクトリを解決するには? [コピー]

マップされたドライブのディレクトリ内のファイルセットを解析しようとしています。ただし、サブディレクトリパスの空白が原因であるように見える問題を解決できないようです。どんな助けでも大変感謝します!ありがとうございます。

#!/bin/bash
FILES=/home/user/.gvfs/analysis\$\ on\ server.university.edu/users/username/m/BED_files/*
#FILES=/home/user/Desktop #this works

for f in "${FILES}"
do
    echo $f
done

ベストアンサー1

引用符も使用している場合は、ワイルドカードを変数の一部として使用することはできません。 @jasonwryanが提案した配列変数構文は、ループが実行されるのではなく、配列が初期化されたときにディレクトリの内容を確認します。

#!/bin/sh
DIR='/home/user/.gvfs/analysis$ on server.university.edu/users/username/m/BED_files'

for f in "$DIR"/*
do
    echo "$f"
done

変数にワイルドカードを定義する必要がある場合は、別の変数に入れてください。

#!/bin/sh
DIR='/home/user/.gvfs/analysis$ on server.university.edu/users/username/m/BED_files'
FILES='*.txt'

for f in "$DIR"/$FILES
do
    echo "$f"
done

おすすめ記事