在 ~/.bashrc 中设置的变量并在 shell 脚本中访问它们

2023-12-06

我在 .bashrc 的最顶部有这个,before非交互式 shell 的返回

FOO="BAR"; export FOO
echo "HELLO WORLD"

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

我的主目录中有一个脚本 test.sh :

#!/bin/bash
echo "A"
echo $FOO
echo "B"

我执行test.sh。输出:

A

B

2个问题:

  • 为什么我看不到 $FOO 的值?
  • 为什么我看不到“HELLO WORLD”?

edit:我认为带有 #!/bin/bash 的脚本会触发一个子 shell,它将再次调用 .bashrc,我错了吗?

edit:即使我确实从另一台主机调用脚本,我也不会看到任何值。即使这样,.bashrc 也会被执行???

ssh remotehost "/home/username/test.sh"

.bashrc仅针对非登录交互式 shell 自动获取。通常,你会放. .bashrc接近你的开始.bash_login文件,以确保.bashrc源自登录和非登录交互式 shell。

.bashrc对于非交互式 shell,例如执行 shell 脚本时启动的 shell,不会自动获取源。

既然你导出了FOO from .bashrc,事实是test.sh sees FOO如果值为空,则表明您正在从登录 shell 运行脚本。做echo $FOO从提示打印BAR?如果确实如此,我会感到惊讶test.sh没有。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ~/.bashrc 中设置的变量并在 shell 脚本中访问它们 的相关文章

随机推荐

  • 如何在 Swift 中从两个结构数组中删除公共项

    在我的应用程序中 我有两个结构数组 我想从其中之一删除常见项目 我的结构 struct PeopleSelectItem var name var id var added false 我的数组 var people PeopleSelec
  • 为什么没有从 std::string_view 到 std::string 的隐式转换?

    有一个隐式转换std string to std string view并且它并不被认为是不安全的 尽管如果程序员这样做肯定可能会导致大量悬空引用不小心 另一方面 没有隐式转换std string view to std string使用相
  • 如何在 TableViewController 上方添加 UIView

    我想在我的表格视图上方显示一个 UIView 出于测试目的 我使用了搜索栏 以消除代码中任何可能的问题 我的设置 标签栏控制器我的自定义表视图控制器看法TableView 用于自定义单元格高度 搜索栏 我将搜索栏放置在 窗口 的顶部 并下拉
  • 多态性和数据隐藏:基类是否会覆盖或忽略派生类的访问限制?

    请看下面的代码清单 include
  • jsTree - 使用 AJAX/C#Web 方法动态填充树

    我有一个 div 我想用 jsTree 填充它 我得到了树应该显示的 正在加载 图标 但是 即使没有抛出错误 似乎也会出现 JavaScript 错误 我从 AJAX 请求加载文件夹结构 如下所示 Documents aspx GetFol
  • React Native 和全局可访问的对象

    我在 React Native 上度过了一段非常糟糕的时光 并且能够从更深层次的函数中访问函数 变量和对象 老实说我以为Redux这将是我的可取之处 但我也遇到了完全相同的障碍 一个例子 export class Home extends
  • 如何在专注于电视 LazyRow 的同时始终专注于第一项?

    我正在尝试实现一个 TVLazyRow 当我们关注该行上方其他可组合项的行时 它必须始终首先关注第一个项目 目前 按下时 焦点将转到行中位于上面可组合项正下方的项目 我怎样才能实现这种行为 这是我的代码以获取更多上下文 val tvList
  • UWP - 旋转图像,同时保持其与网格对齐,仅使用 XAML

    Using Windows 模板工作室 我创建了一个 主要是自动生成的 示例 UWP 应用程序 它在 GridView 中显示一堆图像 为了旋转它们 我使用了以下 xaml 注意RenderTransform我添加的块以及该范围内的注释
  • 如何使用 urllib2 从 Python 中打开的 url 中提取特定数据?

    我是 Python 新手 正在尝试制作一个非常基本的网络爬虫 例如 我制作了一个简单的函数来加载显示在线游戏高分的页面 所以我能够获取 html 页面的源代码 但我需要从该页面中提取特定的数字 例如 网页如下所示 http hiscore
  • while (cin >> x) 和文件结束问题

    我对发生的事情有点困惑 我正在玩 Accelerated C 中的一些程序 并且在其中一个早期程序中遇到了问题 第 35 页 如果您附近碰巧有一个副本 它使用这个片段 while cin gt gt x count sum x count
  • 上传时 EPIPE(管道破裂)?

    我的代码有问题 但我不知道 E 日志报告在哪里 04 08 05 47 46 745 E Upload Server 20080 Starting storage sdcard1 Music Piano my favourites 11 T
  • 具有索引访问的哈希集

    我需要一个数据结构 允许我向其中添加 项目 不允许重复 通过索引访问集合 我正在考虑哈希集 但是HashSet没有索引 满足上述需求的数据结构是什么 源自的集合怎么样KeyedCollection 这表示项目的集合 其中每个键都源自项目本身
  • Flutter文本省略号删除最后一个单词

    我想使用 TextOverflow ellipsis 但它最后删除 for 使其成为省略号 并且看起来非常难看 我怎样才能做到不删除任何单词 例如 当我使用 fade 和 softwrap false 进行制作时 它可以按我想要的方式工作
  • 如何使用cloudbuild.yaml在GCP上配置redis?

    我正在尝试在 GCP 上设置 CI CD 管道 我有一个使用 Redis 作为数据库的 NodeJS 应用程序 我正在尝试在 GCP 上配置 redis 我已经尝试了下面的配置 但是一旦执行了redis步骤 它就会一直等待redis连接并且
  • R中基于行名合并数据框

    如何合并两个数据框的列 其中包含一组不同的列 但some具有相同名称的行 两个数据框中都没有出现的行的字段应该用零填充 gt d a b c d e f g h i j 1 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9
  • Android - 构造函数 ActionBarDrawerToggle 未定义

    我在 oncreate 函数中使用此代码通过按应用程序图标打开导航抽屉 ActionBarDrawerToggle mDrawerToggle new ActionBarDrawerToggle this host Activity Dra
  • Spring Data Neo4j -repository.save 和 @Indexed(unique=true)

    今天我尝试了Spring Data Neo4j 终于可以使用了somehow 我在用着 春季4 0 2 Spring数据Neo4j 3 0 0 查询DSL 3 3 1 Neo4j 2 0 1 这是我的配置 Configuration Ena
  • Joomla 和 MySQL

    Joomla 上是否有关于在 PHP 中通过 MySQL 进行数据库查询的具体文档 我真正在寻找什么 Joomla 是否实现了自己的数据库包装器 如果没有 建议使用指定的配置参数创建一个 Joomla 是否能够参数化其查询以防止 SQL 注
  • 部分唤醒锁不起作用

    我的应用程序有activities和背景service必须运行24 7 我的应用程序必须通过以下方式与服务器通信Wi Fi发送和接收信息 Problem 每当服务器发送任何警报时 我的应用程序都应该接收并弹出该应用程序 无论它是在前台还是后
  • 在 ~/.bashrc 中设置的变量并在 shell 脚本中访问它们

    我在 bashrc 的最顶部有这个 before非交互式 shell 的返回 FOO BAR export FOO echo HELLO WORLD If not running interactively don t do anythin