linux bash变成首行,linux – 一行设置环境变量和执行命令,在sh和bash中得到了不同的结果...

我想弄明白,oneliner怎么样

var=value command

实际上是sh.我希望变量var可以传递给命令环境,但在当前环境中不应该存在(请不要在最后省略免责声明!)

首先,让我们在bash中尝试一下

#bash

$var= #just to be sure it's empty

$var=value echo something

. something

$echo "$var"

.

$var=value set something

$echo "$var"

.

目前,它按预期工作.但是当我们去sh并重新输入相同的输入时,它会是这样的:

#sh

$var=

$var=value echo something

. something

$echo "$var"

.

$var=value set something

$echo "$var"

. value

最后一个不同.设置命令是什么样的特殊情况?为什么变量var已保存在我们当前的环境中?

免责声明:我知道echo和set是shell内置的,因此我们通过var = value命令传递的环境变量都被浪费了,但我的问题只是语法.我的意思是,它们应该被浪费掉,但是在sh中,当键入set时,变量以某种方式传递到当前环境中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值