UNIX,如何从另一个文件更改脚本文件?

时间:2010-11-15 07:29:24

标签: linux shell unix

我有两个文件调用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

3 个答案:

答案 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_filecat b_file | sed "s/\\\$var/$x/g"

答案 2 :(得分:0)

您可以使用函数并在调用函数的文件中包含带有函数定义的文件。然后函数可以接受参数。首先阅读this documentation以便在bash中编写函数。