微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用bash编写JSON文件

我想用BASH编写一个JSON文件,但是看起来效果不好。

我的代码

sudo echo -e "Name of your app?n" sudo read appname sudo cat "{apps:[{name:"${appname}",script:"./cms/bin/www",watch:false}]}" > process.json

问题: -bash: process.json: Permission denied

除非运行“bash”命令,否则在SU或SSHlogin后,BASH和/或.BASHRC无法正常工作

在bash中后缀别名

不要在ls中执行文件

从命令响应中提取数据并将其存储在variables中

从Windows文件提取目录时,cd命令失败

sh.exe“:emacs:命令未find(Git bash Windows)

文件和terminal之间运行退出命令有什么区别

Bash:如何检查是否只有一个root id,所有用户的uid是唯一的?

如何删除包括下划线之前的字符?

bash:__vte_prompt_command:找不到命令

一般来说,不要这样做。 使用一个已经知道如何正确引用值的工具,如jq :

jq -n --arg appname "$appname" '{apps: [ {name: $appname,script: "./cms/bin/www",watch: false}]}` > process.json

这就是说,你的直接问题是, sudo只应用命令,而不是重定向。 一种解决方法是使用tee来写入文件

echo '{...}' | sudo tee process.json > /dev/null

输出文本,请使用echo而不是cat (从文件或流输出数据)。

除此之外,如果您希望它们出现在结果中,您还必须在文本内部跳过双引号。

echo -e "Name of your app?n" read appname echo "{apps:[{name:"${appname}",watch:false}]}" > process.json

如果你需要处理的不仅仅是一个简单的线,我第二@ chepner建议使用JSON工具,如jq 。

你的-bash: process.json: Permission denied来自于你不能写入到process.json文件的事实。 如果该文件不存在,请检查您的用户是否具有该目录的写入权限。 如果存在,请检查您的用户是否具有该文件的写入权限。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐