我知道这个问题在这里被问过好几次了,我已经阅读了所有答案。它们都是相似的,我已经尝试了各种变体,但似乎没有任何效果。这是我的脚本文件:
#!/bin/bash
names=` cut -d" " -f1-3 $1 `
if [[ "$names" =~ ^[-a-zA-Z]+$ ]] ; then
echo names are ok
else
echo bad names in file
fi
法定名称是仅带AZ或'-'的名称
$ 1是文件的名称,它是其中的内容:
olga geller haifa 56 43
sharon langer haifa 89 31
我基本上将所有名称(使用cut命令)并设为1个字符串->名称,尽管所有名称均有效,但文件的这种变化形式给我“文件中的错误名称”。如果我在某个地方放一个数字,它会打印相同的内容。如果我放'!' 在[[]]内或紧接在“ if”之后,仍然无法使用。它只是打印有效名称和无效名称的“名称都可以”。那我的错误在哪里?
具有名称的字符串由换行符分隔,因此,您必须搜索它们或read
每行并分别测试它们的匹配性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句