【发布时间】:2011-12-30 20:02:31
【问题描述】:
出于好奇,这里发生了什么?
要么我真的很累,要么我能看到的唯一区别是第二个 exec 使用了一个字符串,而前一个使用了相同字符串的变量。
//代码
$command = "sudo /bin/mount /dev/sdd1 /a 2>&1";
echo "[mountDev] command=$command\n";
exec($command,$ouput,$ret_val);
debugArr("mountDev",$output,$ret_val);
$new_command="sudo /bin/mount /dev/sdd1 /a 2>&1";
echo "[mountDev] comman2=$new_command\n";
exec("sudo /bin/mount /dev/sdd1 /a 2>&1",$output,$ret_val);
// error handling
debugArr("mountDe2",$output,$ret_val);
//输出
[mountDev] device=/dev/sdd1
[mountDev] command=sudo /bin/mount /dev/sdd1 /a 2>&1
[mountDev] output=
[mountDev] retval=32
[mountDev] comman2=sudo /bin/mount /dev/sdd1 /a 2>&1
[mountDe2] output=Array
(
[0] => mount: you must specify the filesystem type
)
[mountDe2] retval=32
【问题讨论】:
-
这些是一个接一个运行吗?如果您尝试挂载已挂载的分区,我认为
mount会报错(虽然不一定是那个错误)。 -
要修复
you must specify the filesystem type错误,您应该在mount之后添加-t <filetype>。 -
是的,我知道这一点。当用户尝试安装没有文件系统的驱动器时,我正在尝试实现错误处理部分,这回答了您的第一条评论,因为此安装命令根本不起作用,因为“测试”磁盘没有文件系统
-
好的,我想我会指出这一点:-P