Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何避免解释命令行参数中的特殊符号_Linux - Fatal编程技术网

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

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$$”。 这同样适用于其他特殊

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

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可能有不同的引用规则。