一部のデータを処理してファイルに保存するプログラムを使用しています。データを保存するディレクトリを指定することは可能ですが、プログラムがうまく書かれていないため、入力すると結果を~
解釈できず、指定したディレクトリが見つからないことがわかります/~
。
私はこのプログラムを同僚に与え、彼らが実行するようにしたいと思います。に保存を直接指定できますが、/home/my_username/
実行しようとするとホームフォルダの名前が異なるため、「ディレクトリが見つかりません」というメッセージも表示されます。
~
同僚がプログラムを実行し、データを自分のホームディレクトリに保存できるように指定できますか?
答え1
~
値はシェルによって拡張されるため、${HOME}
プログラムに入力として提供することはできず、自動的に変換されるとは期待できません${HOME}
。 (プログラムにコマンドラインオプションを指定してシェルで実行する機会を提供しない限り)置き換えます。
ホームディレクトリに書き込むには、プログラムに${HOME}
環境変数を検索させることができます。そうすれば、誰でも、家がどこにいても正解を得るでしょう。
答え2
私はそれを試してみることをお勧めします.
(はい、ちょうどポイントです)。これは意味する現在のディレクトリ。
したがって、プログラムがユーザーのホームディレクトリで実行されると、そのデータが保存されます。
答え3
私は/tmp
.itのworld-writableを使用することをお勧めします(または少なくとも、world-writableでない場合は、どのディレクトリを使用するよりもはるかに大きな問題があります!)。
答え4
${HOME}がAndyが提案したように機能しない場合は、/proc/self/cwd/を試してみてください。
または、このパスをどのように設定しても、展開する各ユーザーに対して異なるパスを設定するだけです。
または、プログラムを直接実行するのではなく、スクリプトで実行してください。スクリプトはパスを設定できますが、今やっているか、データディレクトリに移動してからパスでプログラムを実行し、「.」をデータディレクトリとして設定できます。