相关疑难解决方法(0)

Bash:在命令行上指定echo的环境变量?

请考虑以下代码段:

$ SOMEVAR=AAA
$ echo zzz $SOMEVAR zzz
zzz AAA zzz
Run Code Online (Sandbox Code Playgroud)

在这里,我设置$SOMEVARAAA第一线-当我赞同它的第二行,我得到的AAA内容符合市场预期.

但是,如果我尝试在同一命令行上指定变量echo:

$ SOMEVAR=BBB echo zzz $SOMEVAR zzz
zzz AAA zzz
Run Code Online (Sandbox Code Playgroud)

......我没有BBB按照我的预期得到 - 我得到旧值(AAA).

这是事情应该如何?如果是这样,那么为什么你可以指定变量LD_PRELOAD=/... program args ...并让它工作?我错过了什么?

bash environment-variables echo

83
推荐指数
5
解决办法
3万
查看次数

在花括号和管道中分组命令不会保留变量

假设myfile我当前的工作目录中有一个文件.如果命令正常执行,我想设置变量,但也使用其结果.

$ ls myfile && v=3
myfile
$ echo "$v"
3
Run Code Online (Sandbox Code Playgroud)

但是现在我也想管道结果,所以我使用{ list; }语法对命令进行分组:

$ unset v
$ { ls myfile && v=3; } | grep myf
myfile
$ echo "$v"
                  # v is not set

Bash参考手册 - > 3.2.4.3分组命令说:

{ list; }
Run Code Online (Sandbox Code Playgroud)

在大括号之间放置命令列表会导致列表在当前shell上下文中执行.没有创建子shell.以下列表中的分号(或换行符)是必需的.

所以,根据我的理解,v应该设置为3.但它没有发生.为什么?

bash

6
推荐指数
1
解决办法
1379
查看次数

将echo和cut命令分配给变量

我正试图从"upper/lower/boo.txt"获取字符串"boo"并将其分配给变量.我在努力

NAME= $(echo $WHOLE_THING | rev | cut -d "/" -f 1 | rev | cut -d "." -f 1)
Run Code Online (Sandbox Code Playgroud)

但它是空的.我究竟做错了什么?

bash cut

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

标签 统计

bash ×3

cut ×1

echo ×1

environment-variables ×1