shell指令 grep "${2}$" /etc/passwd 是什么意思? 关键是 ${2}$ ,这是什么?

发布于2022-01-13 09:50:58
4个回答
admin
网友回答2022-01-13
我估计你的问题写错了。
我判断原来的shell中写的应该是 grep ${2} /etc/passwd
你截取的是某个shell中的一句
${2} 代表这个shell的第二个输入参数
比如: abc.sh user weblogic
这里第一个参数是 user 第二个参数是weblogic
把第二个参数传入,执行 grep ${2} /etc/passwd ,运行结果就是:
/etc/passwd文件中,weblogic用户信息被输出出来。
admin
网友回答2022-01-13
和都是重定向输出
1 指标准信息输出路径(也就是默认的输出方式)
2 指错误信息输出路径
2&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)

补充问题4&0:
和都是重定向输入
0指标准输入路径
4&0 指的是将文件描述符4指定为标准输入(实际可选4到9之间任意一个数字)

不知下面两句是否写得有点问题,或者是断章取义,总觉得前面可能有“|”符号
grep standard* grep.out 2&1
指的是将包含standard 的行全部写入grep.out文件中,包括grep时发生错误的报错信息
cat filetest 2&1 MAYDAY
如果前面没有“|” 没感觉和 cat MAYDAY filetest 2&1 有什么差别
如果有的话,应该就是将前面得到的信息和MAYDAY 中信息一起写入filetest,包括执行命令时的报错信息,但我好像执行不通过。。。

习惯上
标准输入(standard input)的文件描述符是 0
标准输出(standard output)是 1
标准错误(standard error)是 2
admin
网友回答2022-01-13
1是标准输出
2是错误输出
和 都是输出重定向符号。标准输出默认是打印到控制台,如果要导入到文件,就需要使用或。 会覆盖已有的文件内容,而会附加到已有内容之后。
和 是输入重定向符号。从文件中读取内容。
2&1 是把错误输出导入(合并)到标准输出流中

grep standard* grep.out 2&1 就是将标准输出与错误输出一并送入grep.out文件中,写文件方式为覆盖写()。
cat filetest 2&1 MAYDAY 就是从MAYDAY中读取文件内容,将标准输出与错误输出一并送入filetest文件中,写文件方式为附加写()。
admin
网友回答2022-01-13
标准 sort 命令中 只有 +pos1 -pos2:
sort +pos1 -pos2
即先按 pos1 列排序, pos1 相同的再按 pos2排序
没有 +pos1 -pos2 +pos3 -pos4 形式。
+pos1 -pos2 +pos3 -pos4 后面的pos3可能会覆盖pos1,pos4可能会覆盖pos2。

你分别试一下:
sort -r +0 -1 filename
sort -r +1 -2 filename
就知道了。

-r 是反序,由大到小排序

回到
顶部