Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查文件中的变量值,并根据需要替换Bash脚本_Bash_Variables_If Statement_Sed - Fatal编程技术网

检查文件中的变量值,并根据需要替换Bash脚本

检查文件中的变量值,并根据需要替换Bash脚本,bash,variables,if-statement,sed,Bash,Variables,If Statement,Sed,这个问题与邮政有关: 我正在寻找一种方法来检查文件中的变量值,并根据需要进行更新。要更改该值,请执行以下操作: #!/bin/bash cd '/home/me/' source server.properties server_var="$server_name" echo "$server_var" echo "$application_name" if [ "$server_var" != "server1" ]; then echo "Uncorrect Value"

这个问题与邮政有关:

我正在寻找一种方法来检查文件中的变量值,并根据需要进行更新。要更改该值,请执行以下操作:

#!/bin/bash

cd '/home/me/'
source server.properties
server_var="$server_name"
echo "$server_var"
echo "$application_name"
if [ "$server_var" != "server1" ]; then
    echo "Uncorrect Value"
    sed -i -e 's@server_name=$server_var@server_name=server1@g' server.properties
fi
cd '/home/test/'
感谢您的建议,现在我的if语句可以工作了,但是
sed
命令不会更新文件中的变量值。关于这个问题,你能给我指出正确的方向吗

谢谢,

if [ -n "$server_name" ]
then
    sed ...
fi

顺便说一句,我认为您的
set
命令无法设置
$server\u name
。它将设置
$1
$2
,等等。

谢谢您的回答。我遵循了这里的讨论:关于集合--$(source server.properties似乎可以完成这项工作。实际上,我缺少的是“”,而不是“”,如果你看另一个问题,你会发现答案使用了
$1
$2
,正如我所说的.RTFM。