私はUnixに焦点を当てた人気のあるQ&Aサイトで頻繁に回答しています。私の回答の多くでは、bash
を使用して例を示しています。 シェル。ただし、これを行うたびに、クリーンな環境を作成するプロセスを手動で実行して、すべてのステップが説明され、文書化されていることを確認する必要があります。このプロセスをより簡単にするにはどうすればよいですか?理想的には、1つのコマンドを入力してクリーンな環境を取得し、完了後にその一時的な環境の痕跡をすべて削除することを検討しています。
承認された回答:
私は個人的に次のbash
を使用しています これを行う関数:
so() {
local tmpdir="$(mktemp -d)"
local tmprc="$(mktemp)"
cat > "$tmprc" << EOF
PS1='\$ '
cd "$tmpdir"
EOF
env - HOME="$HOME" TERM="$TERM" bash --rcfile "$tmprc"
rm -rf "$tmpdir" "$tmprc"
}
順番は次のとおりです。
- 一時ディレクトリを作成します(クリーンな環境で作業ディレクトリとして使用します)。
- 一時ファイルを作成します(
bash
として使用します) rcファイル); - rcファイルに、次の行を追加します。
-
PS1
を設定します プロンプトターミネータにプロンプトを表示し、その後にスペースを追加します。これにより、Q&Aサイトに出力のコピーが必要な場合に備えて関連性が保たれます。 - 作成した一時ディレクトリに移動します。
-
-
bash
の新しいインスタンスを呼び出します 、これ:-
$HOME
を除いて、最初は空の環境があります および$TERM
(env - ...
); - 以前に作成した一時ファイルからrcファイルを読み取ります(
--rcfile
。
-
- bashが終了したら、作成した一時ファイルを削除します。
明らかに、これは完全に確実なわけではありません。つまり、システムの他の部分にアクセスできます。ただし、これにより、テストに使用できるクリーンな一時環境が提供されます。