当前位置: 首页 > 知识库问答 >
问题:

超出shell脚本的Bash变量[重复]

沃阳飙
2023-03-14

我们有一个问题,我可以用这个简单的例子重现。我有以下示例shell脚本文件,名为SO shell。txt

#!/bin/bash
export my_var="A quick bown fox"
echo my_var was set to "$my_var"

当我运行SO-shell.txt时,我得到以下输出:
my_var被设置为快速bown fox

脚本执行完毕后,如果我在shell命令行执行以下命令:

我看不到任何东西(即shell变量没有被分配到shell脚本的生命周期之外)

Q) 如何使shell变量超过其定义shell脚本的寿命?

共有2个答案

云霖
2023-03-14

如何使shell变量超过其定义shell脚本的寿命?

这是不可能的(在正常的shell实现中)。因为shell变量存储在shell进程内部的内存中,并且在进程死亡后,所有进程内存都返回给操作系统,所以存储在那里的所有信息都丢失了,包括变量。

基本上可以使用任何进程间通信方法:

  • 使用文件。
李辉
2023-03-14

export和“declare-x”命令允许在环境中添加和删除参数和函数。

Bash参考手册-环境

通过使用export命令,基本上可以为这个特定进程及其子进程声明变量。

但是,作为解决方法,您可以用下一种方式执行脚本。所以壳牌。tx

例如:

[19:30:50][/]# bash test.sh
my_var was set to A quick bown fox
[19:30:59][/]# echo $my_var

[19:31:11][/]# . test.sh
my_var was set to A quick bown fox
[19:31:15][/]# echo $my_var
A quick bown fox

这里有更多信息:从bash脚本导出变量

 类似资料:
  • 问题内容: 我正在尝试为变量分配数组长度。 它说找不到len命令。为什么? 问题答案: 变量名和赋值运算符之间不能有空格。如果这样做,会将变量名称视为命令。 尝试:

  • 本文向大家介绍处理Shell脚本中带有空格的变量(bash脚本),包括了处理Shell脚本中带有空格的变量(bash脚本)的使用技巧和注意事项,需要的朋友参考一下 本篇主要介绍bash脚本中对于含空格文件处理方式。 在批量处理音频文件时候使用下面的脚本发现含有空格的文件名并不能被处理; 通过set -x将执行信息打印出来,发现可以执行到,但是执行过程提示找不到对应的文件名,mv对应的source文

  • 测验sh包含: 我设置测试。sh至chmod 777 我用两个参数开始脚本: 然后我通过键入以下内容进行测试: 结果: 我做错了什么?

  • 本文向大家介绍Shell脚本定义变量和重新赋值,包括了Shell脚本定义变量和重新赋值的使用技巧和注意事项,需要的朋友参考一下 Shell支持自定义变量。 定义变量 定义变量时,变量名不加美元符号($),如: 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: •首个字符必须为字母(a-z,A-Z)。 •中间不能有空格,可以使用下划线(_)。

  • 拉斯宾(杰西)-root@RaspberryPi-腻子 在我输入的终端中 现在我得到了一个包含此代码的脚本 有一个cronjob每小时启动一次这个脚本 苏。一定有什么地方出错了。因为他将变量$finalanswer解读为nothing。 这意味着在此脚本之外定义的变量将不起作用? 我该如何解决这个问题?

  • 写一个脚本,任意输入一个目录和一个字符串,对输入的字符串进行判断,如果字符串内容等于”ww”,则将该目录下的所有子目录删除,所有子文件拷贝到/var 目录下:如果字符串内容等于”rr”,则在该目录下创建 test1.txt 文件