可以避免解释特殊的"Unix/Linux保留";终端中的符号?例如,假设我有以下小C代码:
int main(int argc, char* argv[]) {
if (argc >= 1) {
printf("Argument: %sn", argv[1]);
}
}
现在,如果我将下面的行作为参数传递
./my_program 100$$
将被打印的结果是">10028592";,即使我尝试使用双引号,例如";100$$";。这同样适用于其它特殊符号&"&"&"("..
有什么方法可以将这些符号作为参数传递吗?
根据您的问题,看起来您正在使用Bash shell,或者类似的shell。
引用Bash参考手册,特别是其关于引用的章节:
3.1.2.2单引号
将字符括在单引号("(中可保留文字引号内每个字符的值。一句话可能不会出现在单引号之间,即使前面有反斜杠。
3.1.2.3双引号
将字符括在双引号('"'(中可保留文字引号中所有字符的值,,'$'、'`'、'\'除外,并且在启用历史扩展时,为'!'。[…]