管道符等组合命令

| (管道符)

| 前面的标准输出内容当作 | 后面的标准输入内容

EXAMPLE

~]# echo "--help" | cat
--help
  • echo “–help” | cat # 把–help 当作 cat 的标准输入输出到屏幕上,如图所示,注意与 xargs 应用实例 a 的区别

exec

Syntax(语法)

exec [-cl] [-a name] [COMMAND [ARGUMENTS…]]

如果指定了 command,它将替换 shell。 没有创建新进程。 参数成为命令的参数。 如果提供了-l 选项,则 shell 会在传递给 command 的第 0 个参数的开头放置一个破折号。 这是 login(1) 的作用。 -c 选项导致命令在空环境中执行。 如果提供了-a,则 shell 将 name 作为第 0 个参数传递给执行的命令。 如果由于某种原因无法执行命令,则会退出非交互式 shell,除非启用了 shell 选项 execfail,在这种情况下它将返回失败。 如果无法执行文件,则交互式 shell 将返回失败。 如果未指定 command,则任何重定向在当前 shell 中生效,返回状态为 0.如果存在重定向错误,则返回状态为 1

通过 exec 来执行的命令会顶替掉当前 shell 的进程,但是进程 PID 保持不变

xargs

xargs 可以把从 | 前面获得的输入内容,当成 xargs 后面的命令的选项或者参数来执行

Syntax(语法)

xargs [OPTIONS] COMMAND # 不指定 COMMAND 则默认输出到屏幕上

OPTIONS:

  • -d 指定获得输入内容的分隔符,默认分隔符为空白或换行
  • -n 每次传递 NUM 个字符给|后的内容

EXAMPLE

  • echo “–help” | xargs cat # 把–help 当作 cat 的选项或者参数,如图所示,注意与管道符的应用实例 a 中的区别
~]# echo "--help" | cat
--help
~]# echo "--help" | xargs cat
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

  -A, --show-all           equivalent to -vET
  -b, --number-nonblank    number nonempty output lines, overrides -n
  -e                       equivalent to -vE
  -E, --show-ends          display $ at end of each line
  • ls /var/run/docker/netns | xargs -I {} nsenter --net=/var/run/docker/netns/{} ip addr # 遍历 netns 目录下的所有文件,通过 xargs 命令把所有文件名传递给后面命令,作为后面命令的参数

最后修改 April 15, 2024: update, webservice and rest (695d9be1)