如果/ 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时,你使用了“ – ”代替单引号“’”,这可能会导致问题.