web-dev-qa-db-ja.com

ユーザーのホームディレクトリの適切なアドレス指定方法

次のような他のスクリプトを呼び出すUbuntu VPNのダイアログメニューを作成しています。

cd
cd myrepo/gui
./filetocall.sh

最初のcdは、2番目のcdのディレクトリが常にホームであることを確認するためのものです。

1行でこれに対処するために使用できるより良い方法はありますか? (特にユーザーをパスに指定せずに、少数のデバイスにインストールして使用できるようにしますか?)

2
user797940

~(チルダ)または$HOMEを使用して現在のユーザーのホームディレクトリを取得できるため、次のことができます。

cd ~/myrepo/gui
cd "$HOME/myrepo/gui"

または、直接実行することもできます。

~/myrepo/gui/filetocall.sh
"$HOME"/myrepo/gui/filetocall.sh
6
user894105

loginで使用されるのと同じメソッドを使用します。これにより、$HOMEの再定義にだまされないようにします。

homedir="$(getent passwd $( /usr/bin/id -u ) | cut -d: -f6)"
cd "$homedir"
6
waltinator

cd ~/myrepo/guiがトリックを行うか、もう少し長くなります:cd $HOME/myrepo/gui

~は、ユーザーのホームディレクトリのシェルショートカットです。$ HOMEは、同じシェルのシェルによって設定される変数です。

3
Soren A