IFS для чтения systeminfos

В двух словах:

/ называется корневым каталогом для всей системы; все каталоги системы спускаются из этого каталога так или иначе. /root является root пользователем (точнее, пользователь с UID 0) home directory
0
задан 16 April 2018 в 16:53

4 ответа

Если вы назначаете переменные с помощью read, они должны быть частью одного и того же оператора блока { ... }:

df -k | grep /dev/mmcblk0p1 | { read -r device blocks used available use_percent mounted_on printf "device=%s\nblocks=%s\nused=%s\navailable=%s\nuse_percent=%s\nmounted_on=%s\n" $device $blocks $used $available $use_percent $mounted_on }
0
ответ дан 17 July 2018 в 16:43

Проблема не в IFS, потому что в bash (и некоторых других оболочках) RHS конвейера выполняется в подоболочке.

Простой альтернативой является использование замещения процесса, чтобы сохранить read в родительской оболочке:

read -r device blocks used available use_percent mounted_on < <(df -k | grep /dev/mmcblk0p1)

См. Bash: Назначение переменной не похоже на «stick»

2
ответ дан 17 July 2018 в 16:43

Если вы назначаете переменные с помощью read, они должны быть частью одного и того же оператора блока { ... }:

df -k | grep /dev/mmcblk0p1 | { read -r device blocks used available use_percent mounted_on printf "device=%s\nblocks=%s\nused=%s\navailable=%s\nuse_percent=%s\nmounted_on=%s\n" $device $blocks $used $available $use_percent $mounted_on }
0
ответ дан 23 July 2018 в 17:35

Проблема не в IFS, потому что в bash (и некоторых других оболочках) RHS конвейера выполняется в подоболочке.

Простой альтернативой является использование замещения процесса, чтобы сохранить read в родительской оболочке:

read -r device blocks used available use_percent mounted_on < <(df -k | grep /dev/mmcblk0p1)

См. Bash: Назначение переменной не похоже на «stick»

2
ответ дан 23 July 2018 в 17:35

Другие вопросы по тегам:

Похожие вопросы: