mount cifs:如何从终端检索命令执行的状态?

mount cifs:如何从终端检索命令执行的状态?

下面的mount cifs代码工作正常:

sudo mount -t cifs //192.168.1.77/something /mnt/192.168.1.77/something \
           -o username=alpha,rw,uid=alpha,gid=tango,dir_mode=0770,file_mode=0770,nounix,sec=ntlmssp

通过 shell 脚本,当它在终端中执行时,会出现一个新行:

� Password for alpha@//192.168.1.77/something:

如果密码正确,终端不会写入/放置/显示任何内容,并且目录会按预期安装。但是如果密码错误的话会显示

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

我想创建一个始终迭代的循环,同时:如果终端中出现任何错误消息,则再次执行该命令,因此要求输入密码。当然,如果密码正确并且返回mount cifs表明一切正常的内容,则必须停止循环。

如何实现这一点?我试过了命令替换

result=$(sudo mount -t cifs //192.168.1.77/something /mnt/192.168.1.77/something \
           -o username=alpha,rw,uid=alpha,gid=tango,dir_mode=0770,file_mode=0770,nounix,sec=ntlmssp)
echo "result: '${result}'" 

并发生以下情况:

# Valid password scenario
� Password for alpha@//192.168.1.77/something:
result: ''

# Invalid password scenario
� Password for alpha@//192.168.1.77/something:
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
result: ''

你怎么能看到即使命令替换这是不可能的。始终是空的结果多变的。

不确定是否存在mount cifs该启用的参数返回一些内容,然后让结果变量显示一些东西

答案1

为什么不直接测试 $ 呢?其中应包含挂载的退出代码,在本例中,如果成功,则应为 13 或 0。

如果您想要错误消息,请运行errno $?,尽管您可能必须errno从某些软件包进行安装。

相关内容