次のような他のスクリプトを呼び出すUbuntu VPNのダイアログメニューを作成しています。
cd
cd myrepo/gui
./filetocall.sh
最初のcd
は、2番目のcd
のディレクトリが常にホームであることを確認するためのものです。
1行でこれに対処するために使用できるより良い方法はありますか? (特にユーザーをパスに指定せずに、少数のデバイスにインストールして使用できるようにしますか?)
~
(チルダ)または$HOME
を使用して現在のユーザーのホームディレクトリを取得できるため、次のことができます。
cd ~/myrepo/gui
cd "$HOME/myrepo/gui"
または、直接実行することもできます。
~/myrepo/gui/filetocall.sh
"$HOME"/myrepo/gui/filetocall.sh
login
で使用されるのと同じメソッドを使用します。これにより、$HOME
の再定義にだまされないようにします。
homedir="$(getent passwd $( /usr/bin/id -u ) | cut -d: -f6)"
cd "$homedir"
cd ~/myrepo/gui
がトリックを行うか、もう少し長くなります:cd $HOME/myrepo/gui
。
~
は、ユーザーのホームディレクトリのシェルショートカットです。$ HOMEは、同じシェルのシェルによって設定される変数です。