以下命令有什么区别?
ssh myhostname "command1; command2;...commandn;" 2>/dev/null
ssh myhostname "command1; command2;...commandn;"
Run Code Online (Sandbox Code Playgroud)
什么2>意思?
什么/dev/null意思?我在某处读到命令的结果将写入文件/dev/null而不是控制台!这样对吗?文件的名称对我来说似乎很奇怪null!
目前,我正在编写一个小的外壳程序(重定向,管道,exec等)。一直在尝试弄清楚Linux Shell在解决I / O重定向方面采取的步骤。
关于我需要帮助的一些问题:
寻找重定向时,shell从命令行读取哪个方向?从左到右还是相反?使用递归?
外壳需要寻找什么情况?(不确定是否有很多或只有一对可以包含很多变化)
无论如何,我能想到的是一些(如果我错了,请纠正我):
cmd > file1 # stdout of cmd goes to file
cmd file1 > file2 # stdout of cmd with file1 as an argument goes to file2
cmd file2 < file1 # stdin on file2 comes from file1
Run Code Online (Sandbox Code Playgroud)
现在,我不知道在以下情况下的过程(如外壳如何查找和处理这些情况)。Shell所采取的步骤对我来说是未知的
cmd file2 > file3 < file1 # using "tee" in place of "cmd" I don't know
# how to do the dups and when to exec
cmd file2 < file3 > file1 # same …Run Code Online (Sandbox Code Playgroud)