使用sed命令在Script shell中更改变量值;错误语法

艾哈迈德
sed -i 's|from_infura_hex=?|from_infura_hex=$(curl -s -X POST --connect-timeout 5 -H "Content-Type: application/json" --data \'{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}\' https://ropsten.infura.io/X/X | jq .result | xargs)|' /home/ec2-user/LastBlockNode.sh

我尝试执行此命令,但总是收到此错误:

-bash:意外令牌')'附近的语法错误

该命令的目的是from_infura_hex=?通过curl命令修改脚本LastBlockNode.sh中的值

谁能帮忙这个sed命令?

齐奥诺
  • 如果选择管道字符|作为s命令的定界符,则该字符不应以图案或替换形式出现而不进行转义。当您|在命令中用作管道时,最好选择其他字符,例如#
  • 即使使用反斜杠将其引号也不能嵌套。
  • 为了在替换中使用命令替换,您需要说sed -i '/pattern/'"$(command)"'/'而不是sed -i '/pattern/$(command)/'

那请您尝试以下方法:

sed -i 's#from_infura_hex=?#from_infura_hex='"$(curl -s -X POST --connect-timeout 5 -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":
\"eth_blockNumber\",\"params\":[],\"id\":1}" https://ropsten.infura.io/X/X | jq .result | xargs)"'#' /home/ec2-user/LastBlockNode.sh

但是将命令分成多行将更安全并且更易读:

replacement="$(curl -s -X POST --connect-timeout 5 -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' https://ropsten.infura.io/X/X | jq .result | xargs)"
sed -i 's#from_infura_hex=?#from_infura_hex='"$replacement"'#' /home/ec2-user/LastBlockNode.sh

请注意,我没有用实际数据测试过上面的命令。如果它们中的任何一个仍然不起作用,请通过错误消息通知我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用sed命令更改变量值

来自分类Dev

在 linux 中使用 sed 命令更改变量值

来自分类Dev

使用GDB在JVM中更改变量值

来自分类Dev

如何使用if条件在python中更改变量值

来自分类Dev

如何使用if条件在python中更改变量值

来自分类Dev

如何使用if条件在python中更改变量值

来自分类Dev

如何使用if条件在python中更改变量值

来自分类Dev

使用函数中的内容更改变量值

来自分类Dev

使用dplyr按组更改变量值

来自分类Dev

使用Checkable ListView更改变量值

来自分类Dev

使用ref和this来更改变量值

来自分类Dev

AngularJS-在范围更改时使用if else语句更改变量值

来自分类Dev

使用一个switch语句更改变量值

来自分类Dev

如何在python中的shell命令中使用变量值?

来自分类Dev

如何使用继承在Python模块中修改变量值

来自分类Dev

使用AJAX更改PHP变量值

来自分类Dev

用于更改全局变量值的按钮命令中的参数 python tkinter

来自分类Dev

从命令输出 Bash Shell 中提取变量值

来自分类Dev

在Shell脚本中的Math表达式中使用变量值

来自分类Dev

如何使用样式Laravel中的{{$ percentage}}变量值更改Bootstrap进度条的宽度?

来自分类Dev

使用echo命令输出变量值

来自分类Dev

在PHP中的变量内更改变量值

来自分类Dev

更改变量值时出现“ alert”错误

来自分类Dev

尝试更改变量值时出现总线错误

来自分类Dev

在sed命令中使用变量

来自分类Dev

在`sed`命令中使用变量

来自分类Dev

使用sed命令返回变量

来自分类Dev

使用 SED 命令更改文本

来自分类Dev

变量值在函数调用后更改,不使用