在bash中,我可以创建一个这样一个文档的脚本,就像这个站点一样:
http://tldp.org/LDP/abs/html/abs-guide.html#GENERATESCRIPT
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