我找不到任何关于如何将单个变量导入bash脚本的内容。从另一个文件导入变量是唯一的方法吗?我想我会创建一个临时文件temp.txt
,它有一行......
MYTEMPVAR=something
我希望能够从表单中触发bash脚本,因此每次调用bash脚本时它都会有不同的值。可以这样做吗?
答案 0 :(得分:3)
您可以在运行bash脚本时指定内联变量。 var.sh
的内容:
#!/bin/bash
echo "The date is $mydate"
命令:
$ mydate="Tuesday 29th" ./var.sh
The date is Tuesday 29th
$ mydate=$(date) ./var.sh
The date is 29 May 2018 17:27:39
答案 1 :(得分:0)
使用变量设置运行另一个脚本的问题是默认情况下这是在子进程中完成的。父shell将不知道子进程中的环境变量(或当前的durectory)
你需要的是在没有额外过程的情况下启动该脚本。
您可以告诉bash在source otherscript
或更短. otherscript
的当前环境中运行脚本
尝试下一个命令:
mytempvar="inital value" # variable in lowercase, uppercase is reserved for the shell
echo "mytempvar=something" > temp.sh
chmod +x temp.sh
./temp.sh # starts in a subprocess, the changed value is lost
echo "${mytempvar}"
source temp.sh # run it in the current shell
echo "${mytempvar}"
mytempvar="new value"
. temp.sh # Just like source, other syntax
echo "${mytempvar}"