Можно ли определить, где находится .bash_profile в командной строке bash?

Я запускаю bash программно из объектива c, чтобы создать приложение, подобное терминалу. После запуска я хотел бы выполнить некоторые команды до того, как переключиться на пользователя. Обычно они были в .bash_profile . Этот файл недоступен для меня, а не то, что я хотел бы портить, так или иначе, поскольку я не хочу использовать стандартную среду bash для пользователя. Я попробовал ключ -c script.sh но после того, как script.sh завершен, bash завершает работу. Существуют ли какие-либо другие параметры, кроме программной команды ввода команды, которую мне нужно запустить? Я бы предпочел, чтобы пользователь не видел все.

2 Solutions collect form web for “Можно ли определить, где находится .bash_profile в командной строке bash?”

Вы можете попробовать следующее:

 bash --rcfile <your_rc_file> --noprofile -i 

Что означают опции:

  • --rcfile : использовать в качестве файла запуска следующее:
  • --noprofile : не обрабатывать файлы .bash_profile , .profile , /etc/profile и т. д. Файлы обычно используются в оболочке входа.
  • -i : Его интерактивная оболочка (вроде как противоположная -c которая завершает onces аргумент -c , обрабатывается).

Манифест bash неплох. Вы можете использовать его для получения более подробной информации о том, как запустить bash.

Вы можете вызывать bash с помощью --rcfile myfile и иметь test -f ~/.bashrc && source ~/.bashrc в конце myfile . Предполагается, что вы запускаете интерактивную, но не входящую в систему учетную запись.

Для оболочки входа вы должны были бы имитировать поведение bash в отношении /etc/profile , .profile , .bash_profile , .bash_login и .bash_logout , что является утомительным, но выполнимым. Вы все равно будете запускать bash --rcfile myfile но myfile будет содержать

 test -r /etc/profile && source /etc/profile for f in ~/.bash_profile ~/.bash_login ~/.profile do if test -r $f then source $f break fi done trap 'source ~/.bash_logout' 0 
  • Bash - переименовать 'Image (x) .png' файлы
  • Выбор Баша: оператор и зарезервированное слово
  • Как сделать ярлык ESCAPE + «_» в bash?
  • Терминал говорит, что команда не найдена при запуске
  • в bash, читать после того, как труба не устанавливает значения
  • Переместить курсорные клавиши в режиме bash vi на <nop> (отключить курсоры)
  • bash: если проблема состояния
  • bash throwing "ignored null byte in input" предупреждение в скрипте
  • приостановка сценария bash до тех пор, пока не будут выполнены предыдущие команды
  • Добавить в глобальную переменную внутри цикла?
  • Создайте серию все более крупных файлов
  • Замена команды с использованием ``
  • Linux и Unix - лучшая ОС в мире.