GNU/Linux >> Linux の 問題 >  >> Linux

Bashスクリプトの変数用のスペース?

ディレクトリ名の1つにスペースがあります。その下にbashスクリプトからファイルをリストしたい。これが私のスクリプトです:

fpath="${HOME}/"New Folder"/foobar.txt"

echo "fpath=(${fpath})"
#fpath="${HOME}/${fname}"

ls "${fpath}"

このスクリプトの出力は次のとおりです。

fpath=(/Users/<username>/"New Folder"/foobar.txt)
ls: /Users/<username>/"New Folder"/foobar.txt: No such file or directory

しかし、私のシェルにファイルをリストすると、それが存在します:

$ ls /Users/<username>/"New Folder"/foobar.txt
/Users/<username>/New Folder/foobar.txt

lsを取得する方法はありますか? スクリプトからのパスを表示するには?

承認された回答:

内側の引用符で囲まれた二重引用符を削除するだけです:

fpath="${HOME}/New Folder/foobar.txt"

変数の内容全体が二重引用符で囲まれているため、2回目に行う必要はありません。 CLIから機能する理由は、Bashが最初に引用符を評価するためです。バックスラッシュでエスケープされた引用符はディレクトリパスのリテラル部分として扱われるため、変数で失敗します。


Linux
  1. Bashスクリプトをデバッグする方法は?

  2. 発生数のカウントスクリプトにエラーがありますか?

  3. Bashスクリプトの変数に改行を追加する方法は?

  1. 一致する`"‘を探しているときに予期しないEof – Bashスクリプト?

  2. 環境変数の確認

  3. Bash スクリプト:セッションをログに記録するための bash スクリプトからのスクリプト コマンドの使用

  1. Bashスクリプトに.shまたは.bash拡張子を使用しますか?

  2. Bash スクリプトのパターン マッチング

  3. jenkins パイプラインで bash コマンドを実行する