Linux 如何避免解释命令行参数中的特殊符号
是否可以避免在终端中解释特殊的“Unix/Linux保留”符号? 例如,假设我有以下小C代码:Linux 如何避免解释命令行参数中的特殊符号,linux,Linux,是否可以避免在终端中解释特殊的“Unix/Linux保留”符号? 例如,假设我有以下小C代码: int main(int argc, char* argv[]) { if (argc >= 1) { printf("Argument: %s\n", argv[1]); } } 现在,如果我把下面这行作为参数传递 ./my_program 100$$ 打印的结果是“10028592”,即使我尝试使用双引号,例如“100$$”。 这同样适用于其他特殊
int main(int argc, char* argv[]) {
if (argc >= 1) {
printf("Argument: %s\n", argv[1]);
}
}
现在,如果我把下面这行作为参数传递
./my_program 100$$
打印的结果是“10028592”,即使我尝试使用双引号,例如“100$$”。
这同样适用于其他特殊符号,例如“&”、“!!”、“(”
有没有办法将这些符号作为参数传递?根据您的问题,您似乎正在使用Bash shell或类似的shell 特别是引用: 3.1.2.2单引号 在单引号中包含字符(''')保留文字 引号中每个字符的值。单个引号不能 出现在单引号之间,即使前面有反斜杠 3.1.2.3双引号 将字符括在双引号中(“”)将保留文字 引号内所有字符的值,除 “$”、“'”、“\”,以及启用历史记录扩展时的“!”.[…]
是的,使用单引号,而不是双引号。请在帖子中指出您使用的shell,因为不同的shell可能有不同的引用规则。