我有两个文件调用a_file和b_file。我试图编写a_file,以便它可以更改b_file中的变量。
echo "This is a_file"
echo "Enter x to display msg1 or y to display msg2"
read input
和
echo "This is b_file"
if [ "$var1" = "x" ]; then
echo "message 1"
else
echo "message 2"
fi
请告诉我如何操作a_file中的变量var1
?
这是对khachik答案的更新。很清楚。但是,如果我想在第一次执行a_file后每分钟运行一次b_file,该怎么办? (crontab)我应该写如下。
echo "This is a_file"
echo "Enter x to display msg1 or y to display msg2"
read x
* * * * * ./b_file "$x"
和
echo "This is b_file"
if [ "$1" = "x" ]; then
echo "message 1"
else
echo "message 2"
fi
答案 0 :(得分:2)
您可以使用环境变量。在a_file中,导出变量var:
export var="Some_value"
在b_file中,您可以使用它:
echo $var
但是,您需要获取shell脚本a_file,如:
source a_file
我假设您正在使用shell脚本。
答案 1 :(得分:2)
最好的方法是从命令行传递参数:
echo "This is a_file"
echo "Enter x to display msg1 or y to display msg2"
read x
./b_file "$x"
和
echo "This is b_file"
if [ "$1" = "x" ]
echo "message 1"
else
echo "message 2"
fi
关于修改:您可以使用sed
修改b_file
。 cat b_file | sed "s/\\\$var/$x/g"
答案 2 :(得分:0)
您可以使用函数并在调用函数的文件中包含带有函数定义的文件。然后函数可以接受参数。首先阅读this documentation以便在bash中编写函数。