如何从 USB 记忆棒上的脚本卸载 USB 记忆棒?

如何从 USB 记忆棒上的脚本卸载 USB 记忆棒?

我怎样才能直接从脚本中卸载USB棒,该脚本会自行终止。

因为我正在从棒上运行脚本,所以不可能只是卸载它,因为总是存在错误:设备或资源忙。那么最简单的方法是什么:我应该在脚本自杀之前通过我的脚本在机器上执行脚本吗?

我怎样才能做到这一点?

答案1

如果您正在使用文件系统,则无法卸载它。

你可以尝试

(echo fuser -ku /dev/xxx ; echo umount/dev/xxx ) |
at now +5 sec
exit
  • 当然,这段代码不能从 USB 设备运行。
  • 管道符号 ( |) 必须是该行的最后一个字符。
  • 我想你知道用什么来代替 xxx。

答案2

umount从可移动驱动器上没有打开任何文件的进程运行命令。特别是,这不能是驱动器上的 shell 脚本。在命令行上传递的脚本sh就可以了。存储在驱动器上的脚本必须已终止;简单的方法是使用exec运行卸载序列的 shell 来替换运行脚本的 shell。

#!/bin/sh
mount_point=$(df -P "$0" | awk 'NR==2 {print $6}')
… # do stuff involving the files on the drive
exec sh -c 'cd /; umount "$0"' "$mount_point"

相关内容