Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要自动输入密码并在后台运行的Linux脚本(无expect和send)_Linux_Shell_Passwords - Fatal编程技术网

需要自动输入密码并在后台运行的Linux脚本(无expect和send)

需要自动输入密码并在后台运行的Linux脚本(无expect和send),linux,shell,passwords,Linux,Shell,Passwords,我正在写一个脚本,打算每天运行。脚本还包括一个命令,我需要在其中输入密码,比如每次执行时都要输入abcd。当它询问“密码:”时,是否有任何方法可以自动输入密码: 谢谢实际上这取决于脚本的结构。我脑子里有两个选择 大多数(常用的)CLI可执行文件都有自己的参数集来提供密码/用户/凭据。让我以MySQL为例 shell> mysql --host=localhost --user=myname --password=password mydb 如果您使用的命令不适合这样做;你可以考虑使用“预

我正在写一个脚本,打算每天运行。脚本还包括一个命令,我需要在其中输入密码,比如每次执行时都要输入abcd。当它询问“密码:”时,是否有任何方法可以自动输入密码:
谢谢

实际上这取决于脚本的结构。我脑子里有两个选择

大多数(常用的)CLI可执行文件都有自己的参数集来提供密码/用户/凭据。让我以MySQL为例

shell> mysql --host=localhost --user=myname --password=password mydb
如果您使用的命令不适合这样做;你可以考虑使用“预期”如下;p>
set password 123
spawn ssh "root@192.168.1.1"
expect "Password:"
send "$password\r";
interact

有关更多详细信息,请参阅。

使用
xdool
如果未安装,请首先在系统中使用CLI作为安装工具

apt-get install xdotool
下面是简单的用法

xdotool key Ctrl+Alt+t  # for opening termianl
xdotool key Ctrl+Super+Up #super
xdotool type "su" #typing su for root user
xdotool key KP_Enter #pressing enter key

检查您的键盘快捷方式兼容性。我希望有帮助。

如果您不想使用expect,为什么要用expect标记它?这是否适用于该命令:
echo“my password”|/some/command