我有以下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
变量? / p>
到目前为止,我甚至可以阅读一些东西而无需使用来回显屏幕
read -s PASSWD
但是我不确定如何将其合并到脚本中。
注1:mount
参数-o password=password
对我来说是不行的。我不希望在文本文件中使用硬编码的密码。
注2:同样,我也不想使用mount
参数credentials=filename
答案 0 :(得分:0)
最有可能在子进程中看不到该变量。您可以使用PASSWD
export
read -s PASSWD
export PASSWD
注意:这使它可用于所有子进程。为了您的目的,您只需要将变量仅导出到相关的子进程即可。
sudo PASSWD="$PASSWD" mount -t cifs //server/dir3 /mnt/nas/dir3 -o username=raf