0

これらの2つの例をpushdおよびwhoamiと組み合わせて、ディレクトリを変更するにはどうすればよいですか?

私は次のようにディレクトリを変更できることを知っています:

#!/bin/bash
pushd /home/mike/Pictures > /dev/null
# do something in the new dir
ls
popd > /dev/null

そして、私はこのようなユーザー名を取得できることを知っています:

#!/bin/bash
theuser=`whoami`
echo $theuser        
4

6 に答える 6

3

あなたはそれを考えすぎています...

cd ~/Pictures

編集:

実は違う。あなたが本当に欲しいのは:

cd "$(xdg-user-dir PICTURES)"
于 2011-12-31T19:26:43.417 に答える
1

これらのバッククォートは、含まれているコマンドの出力を別のバッククォートに補間するために使用できます。

pushd /home/`whoami`/Pictures
于 2011-12-31T19:25:13.217 に答える
1

cdディレクトリを変更するために使用する方が簡単です。

#!/bin/bash    
cd ~/Pictures
于 2011-12-31T19:26:24.113 に答える
0

pushdおよびを使用するよりもはるかに簡単でpopd、サブシェルでコマンドを実行します。

(
cd /home/$(whoami)/Pictures &&
ls
)

サブシェルは、メインプロセスに影響を与えることなく、ディレクトリを変更します。必要に応じて、より確実に変更します。

于 2011-12-31T19:25:23.543 に答える
0

Bashにはすでに$USER変数があり、外部バイナリを呼び出す必要はありません

pushd /home/$USER/Pictures > /dev/null
于 2011-12-31T19:26:18.627 に答える
0

他の解決策の中で:

pushd "$HOME/Pictures"

結局のところ、ホームディレクトリにユーザー名を付ける義務はありません。

于 2011-12-31T19:27:45.317 に答える