[英]Unix sh Script confusion
我有一个剧本,是我大学的一位教授给我们修改的,但是我似乎无法确切地知道它的作用。 谁能帮助我更好地理解它?
for i
do grep look $i; done
从我可以收集到的信息中可以看出,变量i的值可以是文件或目录。 但是我不熟悉look命令如何起作用。 我将不胜感激您可以提供的任何提示。
look
不是命令,它是grep
的第一个参数。 因此它将在名为$i
的文件中搜索look
。 (除非您像在grep -R look $i
那样传递-R
,否则grep
不会搜索文件夹。)
令人困惑的是, for i
通常会指定一个in WORDS
,所以for i in one two three
会在do
和done
之间运行命令三遍:一次是变量i
=“ one”,一次是i
=“ two”,并一次与i
=“三”。 但是, bash手册说明了如果未指定in
,该怎么办:
如果不存在“ in word”,则for命令对于设置的每个位置参数仅执行一次命令,就好像已指定“ in $ @”中一样[...]。
因此,简而言之,如果脚本位于名为foo.sh
的文件中,则调用foo.sh file1 file2
将在文件“ file1”和“ file2”中查找单词look
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.