加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何将输出分配给一个shellscript变量?

发布时间:2020-12-15 18:41:57 所属栏目:安全 来源:网络整理
导读:如何将此结果分配给一个 shell变量? 输入: echo’1 1’| bc -l 输出: 2 尝试: (没有工作) #!bin/sha=echo '1+1' | bc -lecho $a 您正在寻找称为命令替换的shell功能. 有两种形式的cmd替换 原来,回到石器时代,但完全可移植,并且在所有类似Unix的外壳(几乎
如何将此结果分配给一个 shell变量?

输入:

echo’1 1’| bc -l

输出:

2

尝试:

(没有工作)

#!bin/sh
a=echo '1+1' | bc -l
echo $a
您正在寻找称为命令替换的shell功能.

有两种形式的cmd替换

>原来,回到石器时代,但完全可移植,并且在所有类似Unix的外壳(几乎全部)中可用.

你的价值生成命令在后面的ticks字符内,即

$a=`echo 1+1 | bc -l`
$echo $a
2
$

>现代的,较不笨重的外观,容易嵌套的cmd替换,$(cmd),即

$a=$(echo 1+1 |  bc -l)
$echo $a
2
$

你的“砰”行表示#!/ bin / sh,所以如果你在一个真正的Unix平台上运行,那么很可能你的/ bin / sh是原来的Bourne shell,并且要求你使用选项1以上.

如果您尝试使用选项2,同时仍然使用#!/ bin / sh并且它工作,那么你有现代的shell.尝试输入echo ${.sh.version}或/ bin / sh -c -version,看看是否有任何有用的信息.如果您获得版本号,那么您将需要了解更新的shell包含的额外功能.

说到更新的功能,如果你真的使用bash,zsh,ksh93,那么你可以重写你的示例代码

a=$(( 1+1 ))

或者如果您正在进行更多的数学运算,那么将保留在范围内,您可以使用shell特征算术,如:

(( b=1+1 ))
echo $b
2

在任何一种情况下,您都可以避免额外的进程创建,但是您不能在shell中执行浮点算术(而可以使用bc).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读