通过让脚本为我工作而不是我一遍又一遍地输入命令来完成一个获得额外学分的项目。我需要从文件中移动几个单词。不仅仅是单词,包括它们在内的单词(例如 Lan)会得到 WLan 等。制作了一个脚本,而不是仅仅输入命令以节省时间。到目前为止,脚本已经完成。
#!/bin/bash
grep ["LAN" /usr/share/dict/words] >> jputn003.txt
方括号不起作用,但如果没有某种括号,文件的输出是每个单词,而不仅仅是包括 LAN 的单词。我认为它需要某种括号来告诉它首先执行 grep,我可能只是将它们放在错误的位置。请给我一些指点...
答案1
你保持追加到 jputn003.txt 文件(带有>>
重定向)。由于它包含错误数据,请将其删除并再次运行脚本。
旧答案如下:
我假设您没有名为 的环境LAN
。
grep "$LAN" /usr/share/dict/words
因为第一个参数用双引号引起来,所以它受到外壳参数扩展。 bash shell 将替换变量 $LAN。由于未将其设置为任何值,因此 shell 会替换为空字符串。现在我们有:
grep "" /usr/share/dict/words
grep 被要求输出文件的哪些行包含空字符串。他们都这样做。