cat "$1" > /tmp/file.$$ 2>/tmp/file0.$$
grep "*" /tmp/file.$$ >/tmp/file0.$$
我的理解是,在cat
命令中,如果发生错误,错误将显示在 中file0.$$
,如果没有,则内容将显示在 中file.$$
。我不明白的是事实是什么$1
。
还有命令中发生的情况grep
。
答案1
“$1”是脚本的第一个参数:
bash your_script argument_1 argument_2 ...
那么$1
将等于 的值argument_1
。最好将其放入双引号中,以便获取参数的实际值(如果参数中有特殊字符,shell 将跳过解释)。
答案2
猫
第一个命令将我认为是文件的输出转储"$1"
到 2 个文件中。 STDOUT 的输出转到/tmp/file.$$
,STDERR 的输出转到/tmp/file0.$$
。尾部$$
是该脚本运行时的进程 ID。
是传递到此脚本中的"$1"
命令行参数 ( arg1
),例如:
$ script arg1 arg2
grep
*
该行查找文件中包含星号(“”)的所有行/tmp/file.$$
并将它们写入到/tmp/file0.$$
.