Bash记住两个脚本出现之间的值

时间:2015-04-01 21:09:28

标签: linux bash shell variables conditional-statements

我想执行一个包含函数定义为:

的简单脚本
#!/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有可能吗?

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

2 个答案:

答案 0 :(得分:0)

如果您使用相同的环境运行var1将是相同的。

跑步:

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

答案 1 :(得分:0)

只需将参数传递给脚本即可控制行为:

#!/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