我是 bash 脚本的新手,我一直试图打印出整行,但找不到工作的方法。
这是我的代码
#!/bin/bash
MOTD=`cat /etc/motd | awk '{print $1}'`
if [ "$MOTD" = "WARNING" ]
then
echo "Audit Criteria: Warning banner exist."
echo "Vulnerability: No."
echo "Details: $MOTD "
else
echo "Audit Criteria: Warning banners does not exist."
echo "Vulnerability: Yes."
echo "Details: $MOTD "
fi
我的输出是:
Audit Criteria: Warning banner exist.
Vulnerability: No.
Details: WARNING:
而不是 警告:仅授权使用
所有事件都可能被监控和报告。
,只有“警告”出现在详细信息中:
我认为问题出在
MOTD=`cat /etc/motd | awk '{print $1}'`
和
if [ "$MOTD"= "WARNING"]
部分,我已经尝试了 {print$0}
但仍然无法让它工作。
最佳答案
我猜你想获取/etc/motd
的第一行,而不是第一个词。如果是这样,请使用以下内容:
MOTD=$(head -1 /etc/motd)
然后进行字符串比较
if [[ $MOTD == WARNING* ]; then
可以查看String contains in bash有关在 bash 中检查字符串是否包含特定子字符串的更多信息。
关于linux - 如何在 BASH 中打印整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908165/