![使用 -c 运行 su 会出现无法识别的命令错误](https://linux22.com/image/609567/%E4%BD%BF%E7%94%A8%20-c%20%E8%BF%90%E8%A1%8C%20su%20%E4%BC%9A%E5%87%BA%E7%8E%B0%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E7%9A%84%E5%91%BD%E4%BB%A4%E9%94%99%E8%AF%AF.png)
我正在尝试以 Linux 中的另一个用户身份运行命令。以下是我运行的内容:
su user1 -c '/bin/mkdir /tmp/zz'
但是,这给了我这个错误:
fatal: unrecognized command '/bin/mkdir /tmp/zz'
答案1
您需要将单引号替换为双引号。但这并不意味着只有带有参数的命令或将多个命令串联在一起时才需要这些引号。
su user1 -c "/bin/mkdir /tmp/zz"
答案2
根据 Mark Wagner 的建议,当用户使用非标准 shell(在我的情况下是 git-shell)时,我遇到了同样的问题。解决方案是:
su -s /bin/bash -c 'some command'