file-6ren">
gpt4 book ai didi

c - 在 C 中为 shell 脚本使用变量

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:42 25 4
gpt4 key购买 nike

我在 C 中有一个 shell 脚本,它被定义为

#define SHELLSCRIPT "\
sed 's/./& \
inserted text \
/20' fileA.txt > fileB.txt \
"

当这个 shell 脚本在终端上运行时,它会在 fileB.txt 的偏移量 20 处插入文本 inserted text。现在,我想要这个 20 fileA .txtfileB.txt 从变量中获取。

我应该怎么做?我尝试了以下

#define SHELLSCRIPT "\
sed 's/./& \
inserted text \
/$i' fileA.txt > fileB.txt \
"

在我运行上面的 shell 脚本之前,我在 C 中运行了 system("i=20"); 但是我在下面得到了这个错误

sed: 1: "s/./& this comment has ...": bad flag in substitute command: '$'

我怎样才能做到这一点?

最佳答案

当您运行 system() 时,它每次都会启动一个新的 shell。因此 i=20 运行的 shell 与 sed 命令运行的 shell 不同。

而不是脚本文本中的 $i,而是将 %d 放在那里。然后你可以将它用作 sprintf 的格式字符串,它可以将命令格式化为一个单独的变量。

#define SHELLSCRIPT "\
sed 's/./& \
inserted text \
/%d' fileA.txt > fileB.txt \
"

char command[500];
sprintf(command, SHELLSCRIPT, 20);
system(command);

关于c - 在 C 中为 shell 脚本使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41004556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com