![这里主要担心的是缺少以非交互方式传递给 fdisk 的命令。](https://linux22.com/image/700047/%E8%BF%99%E9%87%8C%E4%B8%BB%E8%A6%81%E6%8B%85%E5%BF%83%E7%9A%84%E6%98%AF%E7%BC%BA%E5%B0%91%E4%BB%A5%E9%9D%9E%E4%BA%A4%E4%BA%92%E6%96%B9%E5%BC%8F%E4%BC%A0%E9%80%92%E7%BB%99%20fdisk%20%E7%9A%84%E5%91%BD%E4%BB%A4%E3%80%82.png)
当我从命令行运行以下脚本时,我得到了完整的输出/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 文件中。