本文介绍以下两个方面
- 两种继续执行命令的办法
- 编译时可能碰到的问题
办法 1:EOF
例如:vi test.sh 输出上面内容后
用 EOF 则代表把内容当作规范输出传给程序
#!/bin/bash
su - test <<EOF
pwd;
exit;
EOF
常见的谬误(谬误示范):
unexpected EOF while looking for matching “’
#!/bin/bash
su - test <<EOF
pwd;
exit;
EOF
解决: 批改为正确的英文符号或者 去掉多余的符号,EOF 后面不应该有任何的空格或多余符号。
办法 2:su -c
意思:变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su -c ls root
# -c command:变更账号为 USER 的使用者,并执行指令(command)后再变回原来使用者。
参考资料:
- su -c 命令详解
- Shell 继续执行命令
- Shell 执行谬误 unexpected EOF while looking for matching “’