一時使用のためのクリーンなシェル環境を作成するには?

一時使用のためのクリーンなシェル環境を作成するには?

私は有名な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"
}

実行される操作は次のとおりです(順番に)。

  • 一時ディレクトリを作成します(クリーン環境で作業ディレクトリとして使用)。
  • 一時ファイルを作成します(rcファイルとして使用bash)。
  • rc ファイルに次の行を追加します。
    • プロンプトをPS1プロンプトターミネーターの後に空白に設定すると、Q&A サイトから出力コピーを取得したい場合は関連性が維持されます。
    • 作成した一時ディレクトリに切り替えます。
  • 呼び出しの新しいインスタンスはbash次のとおりです。
    • $HOME最初は、($TERM)を除いて空の環境がありますenv - ...
    • 以前に作成した一時ファイル()--rcfileからrcファイルを読み込みます。
  • Bashが終了した後、私たちが作成した一時ファイルを削除します。

明らかに、これは完全に安全ではありません。つまり、システムの他の部分にアクセスし続けることができます。ただし、これはテストに使用できるきちんとした準備環境を提供します。

おすすめ記事