shell指令自带sudo密码

2023-05-16

        希望在sh脚本文件中的shell指令中使用sudo命令,需要自动输入密码以确保顺序执行。有两种方式可以实现:

1、将密码以参数形式追加到脚本

使用管道:echo 密码 | sudo -S shell命令

        如,需要使用超级权限执行python脚本:sudo python run.py,密码:123。则shell指令可写为:

echo 123 | sudo -S python run.py

        -S表示将echo输出的标准流读取,作为输入密码。终端执行:man sudo,可查看-S作用。

         PS:密码为字符串时,用引号。如密码为:admin时,shell指令改为:

echo "admin" | sudo -S python run.py

 2、使用文本块输入重定向

sudo -S sh xxx.sh << EOF 
[password] 
EOF

        eg:

sudo -S sh xxx.sh << EOF 
123456 
EOF

说明:

        -S 参数是 sudo 命令的可选参数,用以接收标准的密码输入<< EOF 命令。

        在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell。

3、应用举例

        设置开机启动脚本(autoload.sh):

#! /bin/bash

# 1. 修改串口设备权限
sudo -S chmod 777 /dev/ttyTHS0 /dev/ttyTHS1 << EOF
1
EOF

# 新建终端,以sudo权限执行桌面auto_run.py文件
cd /home/ubuntu/Desktop
gnome-terminal -x bash -c "echo 1|sudo -S python auto_run.py"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell指令自带sudo密码 的相关文章

随机推荐