Как получить скрипт bash, работающий на FreeBSD, OpenBSD и Linux без его изменения?
извините, заголовок может быть немного раздражающим, но я не знал ничего лучше. В любом случае, я хочу, чтобы скрипт bash работал на FreeBSD, OpenBSD и Linux без его изменения, но bash не находится в одном месте в Linux и BSD.
Итак, если я напишу #!/bin/bash
тогда он не будет работать на BSD, потому что оболочка bash находится в /usr/local/bin/bash
там. Есть ли какое-либо решение, чтобы заставить этот скрипт работать на обоих?
или мне действительно нужно отправить два сценария с разными пути...?
2 ответов
мне нравится ответ об использовании #!/usr/bin/env bash
Это интересный и отличный ответ, но это будет работать только в том случае, если Баш находится на пути.
другой вариант может быть использовать #!/bin/sh
, который является наиболее универсально совместимы расположение раковины.
Затем попросите сценарий сделать что-то в sh
, например, проверить, где bash
установлен (если bash
- это даже установлен). Другой вариант может быть иметь в обоих местах. Создание другой установки может показаться излишним, но эта цель может быть достигнута так же просто, как создание жесткой связи, чтобы bash действительно существовал в обоих местах.