我想在cryptsetup中使用expect。它可以是任何程序而不是cryptsetup。我使用设备,虚拟设备名称和密码提供cryptsetup。
#!/bin/bash
read -p "Device: `echo $'\n> '`" DEV
read -p "Virtual Device: `echo $'\n> '`" VIRTUAL
read -p "Password: `echo $'\n> '`" PSWD
expect -c exec /sbin/cryptsetup luksOpen /dev/$DEV $VIRTUAL
expect "Enter passphrase for /dev/sdc1:"
send $PSWD
我也尝试过' spawn'但它也不起作用。 任何想法都非常受欢迎!感谢人们。
答案 0 :(得分:1)
您可以通过使用以下代码代替最后三行代码来克服 expect 依赖性:
echo $PSWD | cryptsetup luksOpen /dev/$DEV $VIRTUAL
答案 1 :(得分:0)
我理解你的问题和评论,你需要这样的东西:
#!/bin/bash
read -p "Device: `echo $'\n> '`" DEV
read -p "Virtual Device: `echo $'\n> '`" VIRTUAL
/sbin/cryptsetup luksOpen /dev/$DEV $VIRTUAL
mount /dev/mapper/$VIRTUAL /mnt/$DEV
cryptsetup会询问您密码,您将输入密码。这个mount将运行之后。就这样。并且您不需要期望和任何变量来存储密码。