実行する前に bash 再処理文字列

実行する前に bash 再処理文字列

hello world現在のディレクトリに名前が付けられたディレクトリがあるとします。はい、ディレクトリにスペースがあります。たとえば、f1.txtというファイルがあるとします。

ls 'hello world'

印刷する

f1.txt

しかし、

a="ls 'hello world'"
$a

説明する

ls: cannot access ''\''hello': No such file or directory
ls: cannot access 'world'\''': No such file or directory

だから問題はlsでディレクトリリストを取得する方法ですhello world。基本的にこれを行う方法

a="1 2"
b="ls $a"
$b

実際にフォルダの内容を一覧表示します。hello world

PS:私はしたくない

a="1 2"
ls $a

保存して実行したいです。

ベストアンサー1

francois@zaphod:~$ mkdir "hello world"
francois@zaphod:~$ touch "hello world"/{a,b,c}
francois@zaphod:~$ a="ls 'hello world'"
francois@zaphod:~$ eval "$a"
a  b  c
francois@zaphod:~$ 

eval変数は、実行する必要があるコマンドのテキストとしてその変数を実行します。

おすすめ記事