当前位置: 首页 > 面试题库 >

无法在一段时间内使用变量并将其放入bash中

仉昱
2023-03-14
问题内容

我有这样的代码

var="before"  
echo "$someString" | sed '$someRegex' | while read line 
do
    if [ $condition ]; then
        var="after"
        echo "$var" #first echo
    fi 
done 
echo "$var" #second echo

在这里,第一个回显是在“之后”,而第二个是在“之前”。如何在“之后”进行第二次回显打印。我认为是因为购买烟斗,我不知道该如何解决。

感谢您的解决方案…

答案编辑:

我更正了它,并且效果很好。感谢eugene的有用回答

var="before"  
while read line 
do
    if [ $condition ]; then
        var="after"
        echo "$var" #first echo
    fi 
done < <(echo "$someString" | sed '$someRegex')
echo "$var" #second echo

问题答案:

出现这种现象的原因是,while循环是管道的一部分时,在子外壳中运行。对于while上面的循环,将创建一个具有其自己的变量副本的新子外壳var

请参阅本文以获取可能的解决方法:我在管道循环中设置变量。为什么它们在循环终止后消失了?或者,为什么我不能通过管道读取数据?。



 类似资料:
  • 问题内容: 有人可以告诉我使用Selenium Ide从文本中仅提取数字(694575)并将其放入变量中以便进一步使用的命令。这是带有文本的div: 在这种情况下,可能像storeText,storeEval这样的命令应该可以使用,但是带有粘贴的部分对我来说是个谜。 问题答案: 我有解决办法,棘手的1 试试这个1,让我知道它是否对您有用

  • 我正在powershell中编写一个小脚本,希望以特定格式构建一个变量。 当我打印该值时,该值显示为- 我希望输出是- 在这种情况下,如何将变量值放在“”(双引号)内。

  • 我正在尝试编写一个小测试,登录到我选择的页面。我想将我的电子邮件地址写入登录字段,然后按按钮登录。然而,我收到一个错误,我在我的fillField函数中错过了参数。 [ArgumentCountError]函数AcceptanceTester::fillField()的参数太少,1在C:\Users\Henrikas\tests\acceptance\LoginCest中传递。第11行和第2行的p

  • 我们想在json响应中添加一些变量,但是内部方面。 我们有以下方面: 我们需要做一些类似于在这个函数中所做的事情,但不是请求,而是响应。 我们想要注入方面的方法是:

  • 我试图在shell脚本中创建一个时间戳变量,以使日志记录更加容易。我希望在脚本的开头创建变量,并让它在发出时打印出当前时间。事实证明,这比我想象的要困难得多。以下是我尝试过的一些事情: 我尝试过的其他东西只是轻微的变化,没有更好的效果。有人知道如何完成我想做的事吗?

  • 我在使用GetCircleArea()方法时遇到问题。请帮忙。我坐在这里,不知道该怎么办了。 非常感谢。寻找答案!