bash - 单引号内的 Bash 别名参数
问题描述
我正在尝试使用终端创建一个别名来创建 GitHub 存储库,执行此操作的命令是curl -u 'username' https://api.github.com/user/repos -d '{"name":"repo_name"}'
我在我的 .zshrc 文件 gitcreate() 中定义了一个函数,它应该使用第一个参数作为其名称来创建一个 GitHub 存储库
gitcreate() {
curl -u 'my_gh_username' https://api.github.com/user/repos -d '{"name":"$1"}'
}
不幸的是,我不断收到错误 {"message": "Problems parsing JSON", "documentation_url": "https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated -user"} 我已经尝试逃避 $ 和我在网上阅读的其他建议,但没有任何效果,我希望有人对此有一个简单的解决方案/可以将我推荐给我可能能够找到答案的地方。谢谢!
解决方案
只是
"{\"name\":\"$1\"}"
或者
'{"name":"'"$1"'"}'
但充其量是使用适当的 JSON 工具:
data=$(jq -n --arg arg "$1" '{"name": $arg}')
curl ... "$data"
推荐阅读
- python - 如何设置图形轴范围
- java - 如果使用线性探测,删除的成本是否低于单独链接的情况?
- swift - 节点树内的 SpriteKit 精灵位置
- docker - 无法设置文件修改时间,路径 = './pubspec.lock'(操作系统错误:不允许操作,errno = 1)
- json - 循环API直到满足条件
- excel - 更改代码以使用选择来填充数组
- bash - 从 bash 程序在后台执行静默 sqlplus
- javascript - 我通过 id 获取元素的 javascript 在一行上工作,但在另一行上却不行
- python - 如何循环和保存每次迭代的数据
- r - 计算每个类别的天数总和