linux - 从 bash 脚本返回错误的 BASH 变量

标签 linux bash variables

我想通过 bash 脚本检查 $HISTFILE(或任何类似的 BASH 变量)的值。在命令控制台上,“echo $HISTFILE”是我通常使用的方式,但是来自 bash 脚本,它只包括:

    #!/bin/bash
    echo $HISTFILE

给出一个空行而不是显示 $HOME/$USER/.bash_history(或类似的返回值)。我的问题是:

  1. 这样做的原因是什么(因为我在使用 bash 脚本时从来没有遇到过这样的麻烦)和
  2. 如何从 bash 脚本中检查 $HISTFILE 等 BASH 变量的值?

非常感谢。干杯,M.

最佳答案

HISTFILE 仅在交互式 shell 中设置;脚本在非交互式 shell 中运行。比较

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

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

但是,强制脚本在交互式 shell 中运行也会导致您的 .bashrc 文件被获取,这可能是合意的,也可能不是合意的。

关于linux - 从 bash 脚本返回错误的 BASH 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565943/

相关文章:

bash - 如何将带空格的不带引号的字符串作为带引号的参数传递?

ASP.NET 变量范围

variables - 如何在 GNUPLOT 中定义具有 3 个变量的函数

oracle - 这个 PL/SQL 有什么问题?绑定(bind)变量 * 未声明

linux - 文件中的隐藏行?

c - C程序中Linux系统调用的输出

python - PyQt Web 浏览器 : Focus on the webpage without a mouse click

linux - 来自旧 key 的 svn+ssh 连接

php - 远程端ssh2执行生命周期

bash 和 telnet 来测试电子邮件