保存した変数文字列からフォルダ名を取得しようとしています。次のコマンドを実行するとき
path="Folder%20Name/Dir/File"
read -d "/" folder < <(echo ${path/\%20/ })
echo "$folder"
私は空白を得ますecho $folder
。私はどこで間違っていますか?試しましたがread -d "/" folder <<< $"(${path/\%20/ })"
成功しませんでした。
ベストアンサー1
最初のコマンドは Bash 4.4 でうまく動作します。
$ path="Folder%20Name/Dir/File"
$ read -d "/" folder < <(echo ${path/\%20/ })
$ echo "$folder"
Folder Name
ここでは、プロセス置換を使用する必要はありませんが、次の文字列を使用できます。
$ read -d "/" folder <<< "${path/\%20/ }"
2番目のコマンドでは、$"..."
ここでは不要なローカライズされた引用符を使用しており、角かっこも文字列に追加されているため、変数(Folder Name
に対してこれを行うことで取得できますpath
。
(しかし、Zshを使い始めたら、Zshをpath
変数名として使用しないでください。)