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

在 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 ...

非常感谢

解决办法

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

每当我需要学习有关 ubuntu/linux 中 shell 脚本的新知识时,我都会参考这些内容。

我想你会发现 ABS 第 3 章最容易理解。所有的符号都在页面的最左侧,下面有说明。

评论(3)

第一种方法是从 ~/ 目录中搜索以 .c 结尾的文件,然后执行 sed(流水线编辑器),其中 sed s 搜索 cybernetnews 并将其改为 cybernet

第二项我不明白......执行时显示空结果。

评论(1)

我发现学习终端命令的最佳资源是 LinuxCommand,它详细介绍了最常用的可用命令。

评论(1)