某些 Linux 终端命令中的这些符号是什么意思?

Exe*_*n-G 12 command-line

在 AskUbuntu 上,我看到了一些看起来很复杂的命令,其中包含很多符号。为了更好地理解这些命令是如何构建的,我想知道这些符号代表什么。

例如:

find ~/ -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;

甚至更复杂:

echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"

我非常理解添加参数为-c, --debug, 对主命令有一定的影响。这些的含义几乎在所有情况下都可以在man页面中找到,所以这不是我真正要寻找的。

请尝试在您的答案中定义符号的具体作用,而不是解释我给出的示例。看起来像这样:

" means 'argument': the main command uses anything within these symbols as its source
^ is used for ...
# is used for ...
Run Code Online (Sandbox Code Playgroud)

提前致谢

Sau*_*Don 15

请参阅名为Shell-Operation的 Bash 参考手册部分和高级 Bash 脚本指南第 3 章(特殊字符)

当我需要学习有关 ubuntu/linux 中的 shell 脚本的新知识时,我会参考它们。

我认为您会发现 ABS 第 3 章最容易为您的目的导航。所有符号都显示在页面的最左侧,其下方有说明。


roa*_*dmr 7

不幸的是,您必须转到手册页,因为根据读取它们的命令,“符号”可能具有不同的含义。

例如,在您的第一个命令中,{} 和 \; 的含义。取决于查找命令(man find)。sed 参数上的引号的含义取决于 sed 或 bash(因为它是一个带引号的参数,它可能是一个外壳程序)。~/ 绝对是一个 bash 模式扩展的东西。

对于第二个复杂的命令,它主要是回显内容,因此您可以在 bash 的手册页中找到有关该命令的大部分信息。

要回答您对此的评论,重定向字符 > < | 用于从文件(大于号和小于号)通过管道传输内容,并将命令的输出连接到另一个命令的输入(管道 |)。有关I/O 重定向的精彩教程,请参见此处,这是 Unix shell 和工具集的一个非常强大的设计功能。