arg1命令有什么作用?

时间:2013-08-30 20:32:41

标签: bash

我是bash的新手,我对以下代码有一个简单的问题:

echo "xyz" > file
f1="xy"

while cat file | grep $f1 #this is inefficient, I know
do
  set arg1 $1 # ok what's that?!
done

cmd参数:test1

问题1:set arg1 $1将cmd参数设置为“arg1 test1”,对吗? arg1只是一个随机名称?

问题2:虽然cat file | grep $f1仅在文件中存在$f1时返回true,否则它将不会进入while循环。正确的吗?

1 个答案:

答案 0 :(得分:3)

您已回答了自己的问题。 But do not forget about quotes around your variables. 此外,您不必使用cat将文件传递给grep,因为grep允许您指定文件。

这是一个有点改进的版本:

echo 'xyz' > file
f1='xy'

while grep -q "$f1" file; do # will loop forever if this file contains $f1 pattern.
    set arg1 "$1"
done