gpt4 book ai didi

linux - 在 shell 脚本中运行 sudo 命令

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:37 27 4
gpt4 key购买 nike

我写了一个这样的shell脚本

#!/bin/bash

sudo mkdir /var/www/html/test
sudo cp ./index.html /var/www/html/test/index.html
echo "Hi" > /var/www/html/test/index.html

如果我用 sudo 运行它,它运行良好。

$ sudo ./script.sh

但我不想使用 sudo 运行。因为 echo 不需要 root 权限。另一方面,如果我像这样在没有 sudo 的情况下运行它:

$ ./script.sh

对于第一个命令 (mkdir),它要求我输入 root 密码,第二个命令没有运行并给我一个权限被拒绝的错误。

我该如何处理这种情况?

最佳答案

基于您的设置,例如在 ubuntu 中,如果我运行 sudo 2 次,第二次我不必输入密码。所以有可能第二个 sudo DID 运行了,没有再次询问密码。

你可以澄清一下,试试这个:

sudo echo a
sudo echo b

正如 Kip K 评论的那样,错误很可能源于回显“Hi”...因为普通用户没有写入/var/www/html/test/index.html 的权限。

有点矫枉过正,但您可以像这样不断提供反馈:

sudo bash -c 'echo mkdir; mkdir /var/www/html/test'
sudo bash -c 'echo cp; cp ./index.html /var/www/html/test/index.html'

关于linux - 在 shell 脚本中运行 sudo 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44804638/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com