请看例子:
~$ VAR1=hi a.out
hi
~$ echo "v=$VAR1"
v=
~$
a.out的源码:
#include <stdlib.h>
#include <stdio.h>
int main() {
char* s = getenv("VAR1");
puts(s ? s : "");
}
再请看:
~$ VAR1=a echo "v=$VAR1"
v=
~$ VAR1=a; echo "v=$VAR1"
v=a
~$ VAR1=a; a.out
~$ export VAR1=a; a.out
a
~$ unset VAR1; echo $VAR1
~$
有;的是两条命令,没;的是一条命令。两条命令时需要export.
英文是Temporarily declare a variable in Bash.