在 ~/.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 脚本中访问它们 的相关文章

  • Virtualenv 激活脚本不会在带有 set -euo 的 bash 脚本中运行

    我正在尝试创建一个激活 virtualenv 的 bash 脚本 pip 安装 requests txt 并继续 这将是我的 init sh 脚本 供以后使用 usr bin env bash set euo pipefail DIR sc
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • 使用 IFS bash 进行 CSV 解析:选择“;”作为分隔符

    我有一个包含 130 列的 CSV 我需要用它来做 3 个 csv 我用 while 和 IFS 循环 因为我需要对每一行的变量进行一些处理 这是我所做的 while IFS read my 130 vars what i do with
  • 获取 Bash 中最后运行的程序的名称

    我有一个 bash 脚本 我使用 trap 命令捕获错误 并且我希望能够打印最后一个命令的名称 失败的命令 bin bash function error echo program name trap error ERR Some comm
  • 独特的 Linux 文件名,可按时间排序

    以前我用的是uuidgen http man7 org linux man pages man1 uuidgen 1 html创建唯一的文件名 然后我需要通过 bash 脚本按日期 时间迭代该文件名 从那时起 我发现简单地通过 ls l 循
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 命令中的 Bash 变量扩展[重复]

    这个问题在这里已经有答案了 DATE 1 week ago date date DATE 不起作用 我怎样才能让它发挥作用 我可以做 DATE CMD date date DATE eval DATE CMD 但我不想将整个命令存储在变量中
  • 通过 ssh 运行 Bash 脚本

    我正在尝试编写一个 Bash 脚本 它将通过 SSH 连接到计算机并创建一个目录 长期目标有点复杂 但现在我从简单的开始 然而 虽然很简单 但我似乎不太明白 这是我的代码 bin bash ssh T email protected cdn
  • Bash 目录上的 For 循环

    快速背景 ls src file1 file2 dir1 dir2 dir3 Script bin bash for i in src do if d i then echo i fi done Output src dir1 src di
  • BASH 中带有千位分隔符的数字格式

    我有一个号码12343423455 23353 我想用千位分隔符格式化数字 所以输出将是12 343 423 455 23353 printf 3f n 12345678 901 12 345 678 901
  • 如何在bash中进行二进制加法

    我正在尝试将两个 32 位二进制数相加 其中之一是常数 address range in binary 另一个是数组的元素 IPinEachSubnet val 我正在尝试按照说明进行操作here https www linuxquesti
  • 需要 sudo 密码的 Bash 脚本

    我正在创建一个 Bash 安装程序脚本 它为 OSX 和 Linux 编译并安装一些库 因为我的脚本中的某些命令 make install apt get install port install 等 需要 sudo 所以我需要用户提供密码
  • 在bash中用其他文件过滤一个文件

    我有一个带有数字的文件 例如 cat file 31038467 32048169 33058564 34088662 35093964 31018168 31138061 31208369 31538163 31798862 和其他例如
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • 如何迭代 Bash 中变量定义的数字范围?

    当范围由变量给出时 如何在 Bash 中迭代数字范围 我知道我可以做到这一点 在 Bash 中称为 序列表达式 文档 http www gnu org software bash manual bashref html Brace Expa
  • 通过 Bash 命令在文本文件中查找并替换

    例如 对给定输入字符串进行查找和替换的最简单方法是什么abc 并替换为另一个字符串 例如XYZ在文件中 tmp file txt 我正在编写一个应用程序并使用 IronPython 通过 SSH 执行命令 但我不太了解 Unix 也不知道要
  • bash 递归xtrace

    有没有办法运行 bash 脚本 X 以便如果 X 调用可执行 bash 脚本 Y 则 Y 以 sh eux 开头 X sh Y sh Y sh bin sh echo OK 可以通过导出子 shell 使用父 shell 中设置的相同 sh
  • PDF:在现有 PDF 文件中插入一行文本

    我有一个 PDF 文件 我希望在所有页面 前两页除外 的页脚上添加一行纯文本 不是徽标或类似内容 有谁有一个如何做到这一点的例子 用任何语言 Update 原始 PDF 是用 Scribus 制作的 我可以完全控制它 因此 如果更容易进行查
  • 如何从正则表达式中获取所有匹配项?

    我想获得所有出现的情况 0 9A Z 以供稍后处理 我有 if cat file 0 9A Z then echo BASH REMATCH fi 这给了我第一个匹配项 但是我如何处理文件中的所有匹配项 谢谢 如果您只想获取正则表达式的匹配
  • cat/Xargs/命令 VS for/bash/命令

    Linux 101 Hacks 一书的第 38 页建议 cat url list txt xargs wget c 我通常这样做 for i in cat url list txt do wget c i done 除了长度之外 还有什么东

随机推荐

  • 如何在 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