Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何按顺序为多个dd终端命令创建applescript(用于多个USB驱动器复制)?_Image_Applescript_Sequence_Dd_Bootable - Fatal编程技术网

Image 如何按顺序为多个dd终端命令创建applescript(用于多个USB驱动器复制)?

Image 如何按顺序为多个dd终端命令创建applescript(用于多个USB驱动器复制)?,image,applescript,sequence,dd,bootable,Image,Applescript,Sequence,Dd,Bootable,我需要创建一个apple脚本来按顺序执行DD命令,将相同的.img文件复制到多个USB闪存驱动器 上下文:计算机连接到一个带电源的USB集线器,其中7个USB闪存驱动器由diskutil连接和卸载。没有其他USB设备或磁盘连接到计算机(因此USB记忆棒将分配一个disk1-disk7资源映射) 台阶 将准备一个名为“source.img”的文件并将其放在桌面上(例如可引导操作系统的.img) 必须要求终端将目录更改为桌面 具有管理权限(密码可以插入脚本,或向用户询问一次)时,必须要求其执行以下

我需要创建一个apple脚本来按顺序执行DD命令,将相同的.img文件复制到多个USB闪存驱动器

上下文:计算机连接到一个带电源的USB集线器,其中7个USB闪存驱动器由diskutil连接和卸载。没有其他USB设备或磁盘连接到计算机(因此USB记忆棒将分配一个disk1-disk7资源映射)

台阶

  • 将准备一个名为“source.img”的文件并将其放在桌面上(例如可引导操作系统的.img)

  • 必须要求终端将目录更改为桌面

  • 具有管理权限(密码可以插入脚本,或向用户询问一次)时,必须要求其执行以下操作:

“sudo dd if=source.img of=/dev/rdisk1 bs=1m”

  • 脚本必须等待操作结束,然后要求终端执行另一个DD,这次是到disk2:
“sudo dd if=source.img of=/dev/rdisk2 bs=1m”

再次,等待操作结束,然后询问:

“sudo dd if=source.img of=/dev/rdisk3 bs=1m”

rdisk4、rdisk5、rdisk6、rdisk7等

  • 在disk7操作结束时,脚本可以关闭终端,并向用户发送查找器消息(或音频通知),告知7个闪存驱动器的USB复制过程已结束
这是一种创建“便宜的USB复印机”的方法,用于将可引导图像放在多个记忆棒上,我需要它来为我的学生做一个学校项目

有人能帮忙吗?我是一个有Applescript的零。这对很多人来说都很有用

谢谢大家!!
阿尔贝托

为什么需要使用Applescript?为什么不像这样一个简单的shell脚本呢

#!/bin/bash
cd ~/Desktop
for i in {1..7}; do
   echo "Duplicate to /dev/rdisk${i} (y/n) ?"
   read r
   [[ "$r" == "y" ]] && echo sudo dd if=source.img of=/dev/rdisk${i} bs=1m
done
say "Duplication complete"
将其保存在桌面上作为“复制器”,然后启动终端,并在新的终端窗口中键入:

chmod +x Desktop/Duplicator
使其可执行。然后你可以双击桌面上的“复印机”图标来运行它

注意: 目前,它只是回显“dd”命令,运行它,看看您是否喜欢它,然后删除“echo”,如果一切正常

注意: 这至少适用于Mavericks和Mountain Lion,在一些较旧版本的OSX上,您可能需要将脚本命名为“replicator.command”和/或将脚本与终端应用程序关联。看

注意: 您可以尝试在“bs=1m”之后添加一个“&”,以便7个“dd”命令并行运行,然后在“done”和“say”两行之间添加一行新的“wait”,以等待所有“dd”命令完成。这意味着你可以一个接一个地回答这7个问题,而不必坐在那里看着一个一个地回答。它还可能使“dd”命令运行得更快或更慢,这取决于记忆棒和USB总线的相对性能。它还可以避免“sudo”超时的问题——尽管这些问题可以通过更改文件/etc/sudoers中的超时来解决