如何在bash中访问名称中带有空格的环境变量?
运行env
将返回“ Clear Workspace = true”。如何在bash中访问它?仅供参考,它来自Jenkins Parameterized
Build参数名称。${Clear Workspace}
似乎不起作用。
而且,詹金斯怎么能创建这个环境变量?Clear Workspace=true
在bash中运行显然不起作用,因为它尝试使用参数“ Workspace =
true”运行“ Clear”命令。
我当然可以将作业参数名称设置为Clear_Workspace,但是它以一种形式呈现给用户,所以我宁愿不这样做。另外,用于Jenkins的Maven
Build插件具有多个参数名称,其中包含空格,因此必须可以通过某种方式访问它们。
-
您可以使用以下
env
命令来模拟这种乐趣env Clear\ Workspace=true bash
这将为您提供一个设置了环境变量的shell。
一种获取环境变量值的怪异方法是:
declare -p Clear\ Workspace | sed -e "s/^declare -x Clear Workspace=\"//;s/\"$//"
除此之外,您还需要使用本机代码程序或脚本语言将其提取出来,例如
ruby -e "puts ENV['Clear Workspace']"
如果您没有红宝石,那么它的hacky要少得多。
perl -e 'print "$ENV{\"Clear Workspace\"}\n";'
也
python -c 'import os; print os.environ["Clear Workspace"]'
这是本机代码版本:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char **argv, char **envp) { char **env; char *target; int len; if (argc != 2) { printf("Syntax: %s name\n", argv[0]); return 2; } len = strlen(argv[1]); target = calloc(len+2,sizeof(char)); strncpy(target,argv[1],len+2); target[len++] = '='; target[len] = '0'; for (env = envp; *env != 0; env++) { char *thisEnv = *env; if (strncmp(thisEnv,target,len)==0) { printf("%s\n",thisEnv+len); return 0; } } return 1; }
-
如何在python文件中导入名称中带有空格的文件?
2021-01-29 关注 0 浏览163 1答案
-
如何在.desktop文件的exec行中访问环境变量?
2021-02-01 关注 0 浏览82 1答案
-
BASH中带有空格的文件名
2021-02-01 关注 0 浏览91 1答案
-
如何在Python中删除带有或不带有空格的空行
2021-01-29 关注 0 浏览89 1答案
-
如何通过环境变量设置名称中带有下划线的Spring Boot属性?
2021-02-02 关注 0 浏览231 1答案
-
如何在熊猫中读取带有空格分隔值的文件
2021-01-29 关注 0 浏览73 1答案
-
如何在 Jenkins 中设置环境变量?
2022-05-26 关注 0 浏览22 1答案
-
如何在PyCharm中设置环境变量?
2021-01-29 关注 0 浏览137 1答案
-
如何在PyCharm中设置环境变量?
2021-02-02 关注 0 浏览126 1答案
-
如何在Python中设置环境变量
2021-02-02 关注 0 浏览105 1答案