我需要读取文件的第一行并将其与文本匹配。如果文本匹配,我需要做某些操作。
问题是如果命令无法将变量与字符串进行比较。
file_content=$(head -1 ${file_name})
echo $file_content
if [[ $file_content = 'No new data' ]]; then
echo "Should come here"
fi
echo $file_content
if [ "${file_content}" = "No new data" ]; then
echo "Should come here"
fi
if块无效。我尝试了if的所有可能语法。我认为我在第1行捕获的价值存在一些问题。请帮忙。
答案 0 :(得分:0)
有尾随空格。 使用命令 file_content =“$(echo -e”$ {file_content_init}“| sed -e's / ^ [[:space:]] //'-e's / [[:space:]] $ //')” 然后file_content被剪掉了我用来比较的字符串。
答案 1 :(得分:0)
您可以使用
case $file_content in
(*No new data*)
echo "No news is good news."
;;
(*)
echo "Yay, breaking news."
esac
这会忽略任何前导/尾随空格。这样做的好处是不需要花费昂贵的sed
命令来删除几个字符。这就像用平板卡车送几块糖块......