我目前有一个 c++ Linux 程序,它从文件中读取参数“P”并将其加载到 RAM 中以供进一步操作。该文件包含以下行:
P = 123
我希望程序从 shell 输入而不是文件中获取 P。我对所有选项持开放态度,只要我可以在 SSH 连接时手动输入 P。 我想到的是类似于输入提示的东西:
sudo myprogram start
enter P value : (I would manually enter "123" here)
或者可能是争论:
sudo myprogram start 123
做起来一定很简单,但我不知道怎么做,所以非常感谢任何帮助!
最佳答案
如果这是文件仅有的数据,那么文件操作是不必要的。 只需将 123(或其他)传递给您的 C++ 程序并将字符串转换为整数。
假设您将整数作为第二个参数传递:
int p = atoi(argv[2]);
更好的选择是使用 strtol:
char *s, *ptr;
s = argv[1];
int p = strtol(s, &ptr, 10);
如果您无法更改 C++ 代码,则只需执行以下操作:
echo "P = 123" > file && myprogram start
如果您的文件有更多内容而您不能简单地执行echo,则用新值替换现有行:
sed -i "s/P = [0-9]*/P = 123/" file && myprogram start
关于c++ - Shell 输入作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122344/