“env'之间的区别输出和' env -i bash -lc" env" '

时间:2016-01-27 01:02:35

标签: bash environment-variables env

我感兴趣的是在一些命令与当前环境之后,从干净的登录中找到环境变量的差异。

我认为启动一个新的交互式登录shell(bash)应该在sshing到机器后立即包含环境,但我看到运行之间有区别

if ($("#tablename").prop("selectedIndex") > 0) {
  $.getJSON("getTableData.php?tablename=" + $("#tablename").val(),
    function(jsondata) {
      if (jsondata.rows > 0) {
        var html = '<table id="myTable" class="tablesorter"><thead><tr><th>Row</th>';
        for (i = 0; i < jsondata.columns; i++)
          html += "<th>" + jsondata.headings[i] + "</th>";
        html += "</tr></thead><tbody>";

        for (row = 0; row < jsondata.rows; row++) {
          html += "<tr><td>" + (row + 1) + "</td>";
          for (column = 0; column < jsondata.columns; column++)
            html += "<td>" + jsondata.data[row][column] + "</td>";
          html += "</tr>";
        }
        html += "</tbody></table>";
        $("#tablearea").html(html);
      } // <----------------------------------- You forgot this here.
    });
}
在sshing到机器然后运行

之后立即

env

经过一些谷歌搜索和阅读手册页后,我仍然不确定差异的来源是什么。这种差异有哪些可能的来源?

编辑1:仍然显示与env -i bash -lc "env"

的差异

示例差异

env -i bash -ilc "env"

1 个答案:

答案 0 :(得分:1)

您从交互式shell转到非交互式shell,因此您可能会处理不同的启动文件。