这里主要担心的是缺少以非交互方式传递给 fdisk 的命令。

这里主要担心的是缺少以非交互方式传递给 fdisk 的命令。

当我从命令行运行以下脚本时,我得到了完整的输出/tmp/Fdisk.sh

但是如果我从 cron 运行相同的脚本,我只能获得部分输出。

从 cron 运行时 shell 是否会跳过某些指令?

我的 Shell 脚本:

SHELL=/bin/sh
LC_NUMERIC=en_US.utf8

/usr/bin/printf "\nm\np\nl\nq" | fdisk /dev/mmcblk0

CRON 条目:

* * * * * /home/WiMi/tryFdisk.sh >> /tmp/Fdisk.txt

从 cron 运行时输出:

cat /tmp/Fdisk.txt

Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes
4 heads, 16 sectors/track, 1948992 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

        Device Boot      Start         End      Blocks  Id System
/dev/mmcblk0p1              33     1948992    62366720  83 Linux

这里主要担心的是缺少以非交互方式传递给 fdisk 的命令。

我已经传递了命令,但其中几个被跳过了。

m - 显示帮助屏幕 - 跳过 p - 打印当前分区表 - 已执行 l - 列出已知分区类型 - 跳过 q - 退出 - 已执行

如果我从命令行运行相同的脚本,则所有脚本都将被执行,并且输出将显示在 /tmp/Fdisk.txt 文件中。

相关内容