linux - 如何在 BASH 中打印整行

标签 linux bash if-statement awk

我是 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/

相关文章:

c++ - Poco HTTPServer 连接在调用 stop() 和析构函数后仍然有效

c - 将带有二维数组的结构传递给线程函数并获取其索引值

linux - 寻找更好的自动化工作环境的方法

JavaScript IF 语句 boolean 严格

JavaScript If 语句被忽略

c - 使用 dup2 时的竞争条件

linux - 使用 Unix 工具提取字符串值

bash - bash 中类似 zsh 的历史记录

bash - 如何等待消息出现在登录 shell 中

javascript - 使用数组填充 if 语句值