私のbashスクリプトには、次のような値の変数があります。
~/a/b/c
チルドが拡張されていないことに注意してください。この変数に対してls -ltを実行すると($ VARと呼びます)、そのようなディレクトリは取得されません。この変数を実行せずにbashに解釈/展開させたい。つまり、bashでevalを実行し、評価されたコマンドは実行しないようにしたいと考えています。これはbashで可能ですか?
これを拡張せずにスクリプトに渡すにはどうすればよいですか?引数を二重引用符で囲んで渡しました。
このコマンドを試して、私の意味を確認してください。
ls -lt "~"
これがまさに私が置かれている状況です。チルダを拡張して欲しいのです。つまり、これらの2つのコマンドを同一にするために、何を魔法で置き換える必要がありますか。
ls -lt ~/abc/def/ghi
そして
ls -lt $(magic "~/abc/def/ghi")
〜/ abc / def / ghiが存在する場合と存在しない場合があります。
foo=~/"$filepath"
またはfoo="$HOME/$filepath"
dir="$(readlink -f "$dir")"
eval
ます。