乐趣区

关于linux:Linux切换用户并继续执行命令

本文介绍以下两个方面
  1. 两种继续执行命令的办法
  2. 编译时可能碰到的问题

办法 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 “’
退出移动版