Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何使用shellscript创建文件并在其上放置字符串?_File_Shell_Ubuntu 12.04 - Fatal编程技术网

File 如何使用shellscript创建文件并在其上放置字符串?

File 如何使用shellscript创建文件并在其上放置字符串?,file,shell,ubuntu-12.04,File,Shell,Ubuntu 12.04,我想在/usr/share/applications/中创建一个文件,并在其上放置一个字符串 到目前为止我拥有的: sudo touch /usr/share/applications/test.desktop dentry="testing" sudo echo $dentry >> /usr/share/applications/test.desktop 但这会引发一个错误权限被拒绝。我应该怎么做才能使它工作?您应该使用自己的权限创建文件,然后sudo cp将其安装到位 第二个

我想在
/usr/share/applications/
中创建一个文件,并在其上放置一个字符串

到目前为止我拥有的:

sudo touch /usr/share/applications/test.desktop
dentry="testing"
sudo echo $dentry >> /usr/share/applications/test.desktop

但这会引发一个错误
权限被拒绝
。我应该怎么做才能使它工作?

您应该使用自己的权限创建文件,然后
sudo cp
将其安装到位


第二个命令不起作用的原因是重定向是由shell在
sudo
甚至运行之前设置的。您可以通过运行
sudo sh-c'echo stuff>>file'
来解决这一问题,但这比简单的
sudo cp
更容易发生风险,而且还存在竞争条件(如果您同时运行此脚本的两个实例,它们可能会将信息写入文件两次).

您需要确定是哪个
sudo
导致了错误消息。一次复制/粘贴一行到cmdline并执行它。查看错误所在的位置。我打赌这是第一行。您确定正确设置了
sudo
命令吗。那是一本书的一整章;-)。祝你好运。第一行和第二行都可以!问题可能是第三个。顺便说一句,你应该总是双引号你的变量插值<代码>回显“$dentry”将在变量值中保留空格、换行符和shell元字符。