在bash中生成脚本并将其保存到需要sudo的位置

前端之家收集整理的这篇文章主要介绍了在bash中生成脚本并将其保存到需要sudo的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在bash中,我可以创建一个这样一个文档的脚本,就像这个站点一样:
http://tldp.org/LDP/abs/html/abs-guide.html#GENERATESCRIPT
(
cat <<'EOF'
#!/bin/bash
#? [ ] / \ = + < > : ; ",* | 
#/ ? < > \ : * | ”
#Filename="z:"${$winFn//\//\\}
echo "This is a generated shell script."
App='eval wine "C:\Program Files\foxit\Foxit Reader.exe" "'$winFn'"'
$App
EOF
) > $OUTFILE

如果我的$ OUTFILE是一个需要sudo权限的目录,那么我在哪里放置sudo命令,还有什么可以让它工作?

因为> $ OUTFILE尝试在当前的shell进程中打开$ OUTFILE(不以root身份运行),所以不能在cat之前放入sudo。您需要在一个sudo-ed子进程中进行该文件的打开。

这是一种方法

sudo bash -c "cat >$OUTFILE" <<'EOF'
#!/bin/bash
#? [ ] / \ = + < > : ; ",* | 
#/ ? < > \ : * | ”
#Filename="z:"${$winFn//\//\\}
echo "This is a generated shell script."
App='eval wine "C:\Program Files\foxit\Foxit Reader.exe" "'$winFn'"'
$App
EOF

猜你在找的Bash相关文章