異なる/bin/shを使用した環境の分離

異なる/bin/shを使用した環境の分離

/bin/shと同じだと誤って考えるシェルスクリプトがたくさんあります。たとえば、shebangが/bin/bashありますが(ドット)の代わりにコマンドを使用します。#!/bin/shsource.

/bin/shに接続されているUbuntu 16を実行しているため、dashbash-ismsはサポートされていません。

定期的にスクリプトを実行する必要があります。また、時にはこの特定のバグを修正したくない原作者から更新する必要がある場合もあります。これらのファイルをすべて変更することを避けたいです(ファイルが多く、私のものではなく、更新後にすべての変更が失われます)。また、他のスクリプトが破損する可能性があるため、システム全体を変更しないようにしたいと思います。

/bin/shグローバルシステムに触れることなく、これらのスクリプトで使用できるbashを指す(一時または非一時)環境を何らかの形で生成する方法はありますか/bin/sh

ベストアンサー1

私は、マウントネームスペースやそれに似たものが何であるかについての異なるアイデアを持って、他のプロセス/ユーザーを予約するために使用できると想像しています/bin/sh

しかし、これはハッキングのように聞こえ、「システムを恒久的に変更する」と見なすことができます。 1行の変更を行う方が簡単な場合があります。更新プロセスの修正部分を作成し、バグレポートを公開し、バグのハッシュバンにアップストリームパッチを適用します。

GNU の場合、sedこれを修正するには、次の操作を行う必要があります。

sed -i -e '1s,^#! */bin/sh,#!/bin/bash,' /all/the/scripts/*

おすすめ記事