一行if / else条件在linux shell脚本中

前端之家收集整理的这篇文章主要介绍了一行if / else条件在linux shell脚本中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果/ else条件,我希望在以下行中具有以下的等价物.
$maxline=`cat journald.conf | grep "#SystemMaxUse="`
if [ $maxline == "#SystemMaxUse=" ]
then
    sed 's/\#SystemMaxUse=/SystemMaxUse=50M/g' journald.conf > journald.conf2
    mv journald.conf2 journald.conf;
else
    echo "This file has been edited. You'll need to do it manually."
fi

我试图把它放在一行命令中.到目前为止,除了命令的else部分之外,我已经得到了所有这一切.这是我到目前为止

maxline=`cat journald.conf | grep "#SystemMaxUse="` && if [ $maxline == "#SystemMaxUse=" ]; then sed 's/\#SystemMaxUse=/SystemMaxUse=50M/g' journald.conf > journald.conf2 && mv journald.conf2 journald.conf; fi

那么如何将上述代码的else部分包含在我的命令中呢?谢谢你的帮助提前.

解决方法

看起来好像你在正确的轨道上.你只需要在“;”之后添加else语句遵循“then”语句.此外,我将使用分号将第二行的第一行分开,而不是使用“&&”加入.
maxline='cat journald.conf | grep "#SystemMaxUse="'; if [ $maxline == "#SystemMaxUse=" ]; then sed 's/\#SystemMaxUse=/SystemMaxUse=50M/g' journald.conf > journald.conf2 && mv journald.conf2 journald.conf; else echo "This file has been edited. You'll need to do it manually."; fi

同样在你的原始脚本中,当声明maxline时,你使用了“ – ”代替单引号“’”,这可能会导致问题.

猜你在找的Linux相关文章