我有一个运行FreeBSD 9.x的FreeNAS的旧实现。 我需要运行一个非常简单的脚本:
#!/bin/sh
echo "$1"
echo /tank1/validation/"$1"
mount -t cd9660 /dev/cd0 /mnt/cdfn0
cp -R -n /mnt/cdfn0/* /tank1/validation/"$1"
umount /mnt/cdfn0
chmod -R 777 /tank1/validation/"$1"
camcontrol eject cd0
不幸的是,由于一些不可理喻的原因,当shell执行时:
mount -t cd9660 /dev/cd0 /mnt/cdfn0
它会在找不到文件时抛出错误? (它没有找到cdfn0
)并且它永远不会安装CD ROM。
但是,如果我手动(逐个)执行每一条frigging线,它就可以了!
WTF?
知道什么是错的吗?
=======编辑
我使用的S1的值不是开关,而是用于创建文件夹名称的任意文本。由于这个系统是一个旧的FreeNAS,它缺少“读取”命令,所以这是我发现将varialbe的名称传递给脚本的唯一方法。我必须将近400张CD和DVD迁移到FreeNAS系统中。
当我使用-x参数运行脚本时,我得到:
freenas:/tank1# sh -x cd0iso.sh A005
+ echo A005
A005
+ echo /tank1/validation/A005
/tank1/validation/A005
+ mount -t cd9660 /dev/cd0 /mnt/cdfn0
: No such file or directory
+ cp -R -n '/mnt/cdfn0/*' /tank1/validation/A005
cp: /mnt/cdfn0/*: No such file or directory
+ umount /mnt/cdfn0
: statfs: No such file or directory
: unknown file system
+ chmod -R 777 /tank1/validation/A005
: No such file or directory05
+ camcontrol eject cd0
camcontrol: cam_get_device: unable to find device unit number
+
: not found
+
: not found
+
: not found
据我所知,失败的线是安装线。
至于chmod 777,是的,我知道,但系统处于封闭的局域网中,没有被黑客攻击的可能性。它简化了我的生活。
有什么想法吗?