我从空目录开始。
$ touch aFile
$ ls
aFile
Run Code Online (Sandbox Code Playgroud)
然后我有ls
两个参数,其中一个不在此目录中。我将两个输出流都重定向到一个名为output
. 我使用>>
是为了避免同时写入。
$ ls aFile not_exist >>output 2>>output
$ cat output
ls: cannot access 'not_exist': No such file or directory
aFile
Run Code Online (Sandbox Code Playgroud)
这似乎有效。这种方法有什么危险吗?
Python 有一个选项允许我们将 python 语句作为参数传递给程序。
\n\n一个示例用法是
\n\n$ python -c "print(\\"I\'m running Python.\\")"\nI\'m running Python.\n
Run Code Online (Sandbox Code Playgroud)\n\n在 Python 的手册页中我们读到
\n\n当使用-c命令调用时,它会执行作为命令给出的 Python 语句。这里的命令可能包含多个由换行符分隔的\xe2\x80\x90\n ple语句。\n\n
我试图传递多行,但不能:
\n\n$ python -c "print(0)\\nprint(1)"\n File "<string>", line 1\n print(0)\\nprint(1)\n ^\nSyntaxError: unexpected character after line continuation character\n
Run Code Online (Sandbox Code Playgroud)\n\n我也尝试过这里文档但没有成功。我该如何进行这项工作?
\n我正在尝试使用文件描述符来更好地理解它们,但我无法理解以下内容。
$ grep "..." 3>&1 1>/dev/null
1
12
13
123
321
3
Run Code Online (Sandbox Code Playgroud)
上面的内容没有在 shell 中显示任何匹配项,这显然是发生的,因为我正在重定向到 /dev/null。我不明白的是为什么3>&1
不这样做,这样我仍然可以看到输出,因为我在 fd 3 中复制了它。
我缺少什么?