linux以下命令的含义

linux以下命令的含义
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.$$.

相关内容