如何避免解释命令行参数中的特殊符号



可以避免解释特殊的"Unix/Linux保留";终端中的符号?例如,假设我有以下小C代码:

int main(int argc, char* argv[]) {
if (argc >= 1) {
printf("Argument: %sn", argv[1]);
}
}

现在,如果我将下面的行作为参数传递

./my_program 100$$

将被打印的结果是">10028592";,即使我尝试使用双引号,例如";100$$";。这同样适用于其它特殊符号&"&&quot&"("..

有什么方法可以将这些符号作为参数传递吗?

根据您的问题,看起来您正在使用Bash shell,或者类似的shell。

引用Bash参考手册,特别是其关于引用的章节:

3.1.2.2单引号

将字符括在单引号("(中可保留文字引号内每个字符的值。一句话可能不会出现在单引号之间,即使前面有反斜杠。

3.1.2.3双引号

将字符括在双引号('"'(中可保留文字引号中所有字符的值,'$'、'`'、'\'除外,并且在启用历史扩展时,为'!'。[…]

相关内容

最新更新