如何通过脚本设置密码变量以安装 cifs 共享
How to set a password variable via a script for mounting a cifs share
我有以下 bash 脚本来在 NAS 驱动器中装载几个共享目录:
sudo mount -t cifs //server/dir1 /mnt/nas/dir1 -o username=raf
sudo mount -t cifs //server/dir2 /mnt/nas/dir2 -o username=raf
sudo mount -t cifs //server/dir3 /mnt/nas/dir3 -o username=raf
这些挂载命令中的每一个都会要求输入密码。我想避免多次输入相同的密码。
来自mount.cifs
手册,它说它可以使用变量PASSWD
作为密码。
这就是我的 bash 技能让我失望的地方:我如何更新脚本来询问和设置 PASSWD
变量,调用 mount
命令,最后取消设置 PASSWD
变量?
到目前为止,我可以使用
阅读一些内容而无需返回屏幕
read -s PASSWD
但我不确定如何将其合并到脚本中。
注意 1:mount
参数 -o password=password
对我来说是不行的。我不想在文本文件中使用硬编码密码。
注 2:同样,我宁愿不支持 mount
论点 credentials=filename
很可能该变量未被子进程看到。您可以使用 export
导出 PASSWD
read -s PASSWD
export PASSWD
注意:这使得它对所有子进程可用。出于您的目的,您需要的只是将变量仅导出到相关的子进程。
sudo PASSWD="$PASSWD" mount -t cifs //server/dir3 /mnt/nas/dir3 -o username=raf
我有以下 bash 脚本来在 NAS 驱动器中装载几个共享目录:
sudo mount -t cifs //server/dir1 /mnt/nas/dir1 -o username=raf
sudo mount -t cifs //server/dir2 /mnt/nas/dir2 -o username=raf
sudo mount -t cifs //server/dir3 /mnt/nas/dir3 -o username=raf
这些挂载命令中的每一个都会要求输入密码。我想避免多次输入相同的密码。
来自mount.cifs
手册,它说它可以使用变量PASSWD
作为密码。
这就是我的 bash 技能让我失望的地方:我如何更新脚本来询问和设置 PASSWD
变量,调用 mount
命令,最后取消设置 PASSWD
变量?
到目前为止,我可以使用
阅读一些内容而无需返回屏幕read -s PASSWD
但我不确定如何将其合并到脚本中。
注意 1:mount
参数 -o password=password
对我来说是不行的。我不想在文本文件中使用硬编码密码。
注 2:同样,我宁愿不支持 mount
论点 credentials=filename
很可能该变量未被子进程看到。您可以使用 export
PASSWD
read -s PASSWD
export PASSWD
注意:这使得它对所有子进程可用。出于您的目的,您需要的只是将变量仅导出到相关的子进程。
sudo PASSWD="$PASSWD" mount -t cifs //server/dir3 /mnt/nas/dir3 -o username=raf