【问题标题】:Bash memorize value between two script occurrenceBash 记住两个脚本出现之间的值
【发布时间】:2015-06-06 16:42:32
【问题描述】:

我想执行一个简单的脚本,其中包含一个定义为的函数:

#!/bin/bash

function procedure()
{
   if [ var1 -eq 0 ]; then
   ... do some stuff 
   var1=1
   fi 

   do some other things ..
 }

 procedure
  • 第一次出现:./script.sh 我想执行 if 条件中定义的指令。

  • 第二次出现:./script.sh 我只想执行 if 条件之外定义的指令,但不会记住 var1=1,不是吗?

在 bash 中可以吗?

应该可以通过创建一个临时文件或其他东西来实现,但我想有一种更有效的方法。

【问题讨论】:

    标签: linux bash shell variables conditional-statements


    【解决方案1】:

    如果你在相同的环境下运行var1会是一样的。

    只要运行:

    $ source script.sh
    $ echo $var1 # verify value
    $ source script.sh
    

    【讨论】:

    • 哦,谢谢你的建议!它可以工作,但另一个要求是我必须在名称前调用没有“源”的脚本。创建文件是唯一的解决方案
    【解决方案2】:

    只需将参数传递给您的脚本来控制行为:

    #!/bin/bash
    
    procedure() {
       if [[ "$1" -eq 0 ]]; then
         ... do some stuff 
         var1=1
       fi 
    
       do some other things ..
     }
    
     procedure "$1"
    

    并将其用作:

    ./script.sh 1
    ./script.sh 0
    

    【讨论】:

    • 是的,这可能是一个很好的解决方案!但是我无法将参数传递给脚本,因为它将由我无法对其进行修改的后台进程执行
    • 嗯在那种情况下创建临时文件是我唯一能想到的。
    • 这是我的第一个想法,但我会找到更简单的方法
    猜你喜欢
    • 2011-02-06
    • 2011-06-09
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多