2015-09-14 4 views
0

Я хотел бы проверить значение $ HISTFILE (или любой аналогичной BASH-Variable) с помощью сценария bash. В командной консоли «Эхо $ HISTFILE» является то, как я обычно идти, но внутри Баш скрипт, который только включает в себя:Неверный возврат BASH-Variable из сценария bash

#!/bin/bash 
    echo $HISTFILE 

дает пустую строку вместо показа $ HOME/$ USER/.bash_history (или аналогичные возвращаемые значения). Мои вопросы:

  1. Что является причиной для этого (так как я никогда не имел такой проблемы, используя Баш скрипты) и
  2. как я могу проверить значение Баш-переменные, как $ HISTFILE внутри Баш скрипт ?

Большое спасибо заранее. Cheers, M.

ответ

1

HISTFILE установлен только в интерактивных оболочках; скрипты выполняются в неинтерактивных оболочках. Сравнить

$ bash -c 'echo $HISTFILE' # non-interactive, no output 

$ bash -ic 'echo $HISTFILE' # interactive, produces output 
/home/me/.bash_history 

Однако, заставляя скрипт для запуска в интерактивной оболочке также будет вызывать ваш файл .bashrc быть получены, которые могут или не могут быть желательны.

Смежные вопросы