3

私の会社は Linux のサポートを拡大し始めており、一部のシェル スクリプトはより複雑になり始めています。今日、シバンを次のように使用します

#! /bin/sh

しかし、Ubuntu のような一部のディストリビューションでは、たとえば sh がダッシュを指している場合や、よりエキゾチックな場合に問題が発生しています。

私の質問は、たとえばシバンをバッシュに変更するリスクは何ですか? おそらく、より良い質問は、最近 bash なしでディストリビューションを作成できるかどうかです。

4

3 に答える 3

5

bash 固有の構文に依存している場合は、シェル スクリプトで、汎用シェルではなく bash が必要であることを示す必要があります。

#! /usr/bin/env bash 

通常は

#! /bin/bash

システムに非標準の方法/場所にbashをインストールできるようにするため

2 番目の質問への回答: 「最近、bash なしでディストリビューションを作成することは可能ですか?」もちろん、それは可能ですが、信じられないほどありそうにありません。管理者の bash のWeb サイトから-- bash 4.x は GNU/Linux と Mac OSX では標準であり、Windows では Cygwin と MinGW の両方に bash 3.x が同梱されています。BSD 用のポートがあり、Solaris には 8 以降のバージョンの bash が付属しており、bash 4.x では 10 が出荷されています。

これは、bash のない GNU/Linux OS を見つけるのは非常に不運であることを示唆しているようです。

于 2012-12-13T00:07:17.533 に答える
4

あなたは間違った質問をしていると思います。#!/bin/shより良い質問は、「移植性のないシェル構文 (別名、バシズム)を使用するスクリプトに使用するのはどれほど悪いことか」です。答えは「本当に悪い」です。シバンを修正します。#!/bin/shスクリプトを書いてもbashスクリプトを書くと、トラブルが発生します。エキゾチックだと考えるのdashをやめれば、より移植性の高いコードを書くことができます。要するに、シバンを修正することはまったく悪いことではなく、そうしないことは非常に悪いことです。

于 2012-12-13T04:55:49.480 に答える
1

PHPに変更するよりもリスクはありません。またはPerlに。またはPythonに。お好きな通訳者をご利用ください。

于 2012-12-13T00:02:40.547 に答える