У меня есть сценарий удара (давайте назовем его /usr/bin/bosh
) использование следующей строки хижины:
#!/bin/bash --init-file
Это определяет несколько функций и обычно помещает интерактивную оболочку в среду, где пользователь может управлять набором материала, который я хочу. Это работает вполне прилично. Теперь для интересной части, я хотел бы смочь позволить пользователям использовать этот промежуточный-слой для записи новых сценариев, явно не имея необходимость получить этого. Это вообще возможно?
Я пытался писать сценарий (давайте назовем его /usr/bin/foo
) использование строки хижины
#!/usr/bin/bosh
То, которое я думал, будет переписано для выполнения команды
/usr/bin/bosh /usr/bin/foo
который в свою очередь привел бы к
/bin/bash --init-file /usr/bin/bosh /usr/bin/foo
Но это не работает, /usr/bin/foo
выполняется, но /usr/bin/bosh
не источник перед этим.
Как я могу заставить его получить init файл даже при том, что сценарий не является интерактивным? Или я должен был бы записать сценарий обертки для этого? Я думал о наличии сценария как это
#!/bin/bash
. /usr/bin/bosh
. "$1"
Но это не превратилось бы в интерактивную оболочку, если бы я не указываю сценарий для выполнения, который был бы своего рода позором.
Править
Для разъяснения, что я действительно спрашиваю, как я могу заставить удар получить файл (как - init-файл) независимо, является ли это интерактивным (перед запуском интерактивной части) или не (перед выполнением сценария)? Если нет никакого пути, есть ли какой-либо другой способ решить мою проблему, возможно?