我的代码:
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中
sh.exe“:emacs:命令未find(Git bash Windows)
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] 举报,一经查实,本站将立刻删除。