相关疑难解决方法(0)

bash:获取名称与特定模式匹配的变量列表

在bash中

echo ${!X*}
Run Code Online (Sandbox Code Playgroud)

将打印名称以"X"开头的变量的所有名称.
是否可以使用任意模式获得相同的结果,例如获取名称在任何位置包含"X"的变量的所有名称?

variables bash scripting

35
推荐指数
3
解决办法
2万
查看次数

如何将env输出为可运行的shell脚本

使用可以将环境简单地输出为可运行的shell脚本

env > my_env
Run Code Online (Sandbox Code Playgroud)

......后来在另一个剧本......

set -a
source my_env
Run Code Online (Sandbox Code Playgroud)

这适用于最琐碎的情况,但如果任何特殊的字符或空格在env中则失败.

我如何修复上面的脚本,以便它可以用于这样的东西a='"'"'"

bash

8
推荐指数
1
解决办法
279
查看次数

源shell脚本进入makefile

我有一个bash shell脚本,我通常将其源码发送到我的shell中,定义了许多环境变量,这些变量不会被导出.我不想:

  1. 导出变量,因为这会使可导出的环境变得太大,并最终使整个系统变慢(必须在从shell运行每个命令时导出)
  2. 在makefile(DRY)中重新定义这些变量

我想将相同的shell脚本源到makefile的环境中,以便我可以访问这些变量.这可能吗?我怎样才能做到这一点?理想情况下我会在makefile中执行:

source setup-env.sh
Run Code Online (Sandbox Code Playgroud)

没有sourcemakefile的命令,但可能是等价的东西?我可以使用任何特殊的黑客来模拟相同的效果吗?

bash shell makefile environment-variables

7
推荐指数
1
解决办法
9650
查看次数

在采购后,如何阻止.bashrc中的变量在shell中可见?

作为一个实例,我.bashrc使用以下方式的相对路径,虽然我的问题是关于使用的任何临时变量源其他脚本.bashrc.

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source $DIR/.somefile

现在我把DIR每一个壳弄得乱七八糟.没有明确unset DIR的结尾.bashrc,有没有办法限制变量的范围?

[ 编辑 ]要查看列表:( set -o posix ; set ) | less

bash scope

4
推荐指数
1
解决办法
500
查看次数