пробел в командной строке ZFS

Я обнаружил, что пробел кажется значительным в командах ZFS, но видимо только при некоторых условиях. Например, работают обе следующие команды:

root@grandidier:~# zfs list -t snap -r tank/srv NAME USED AVAIL REFER MOUNTPOINT tank/srv@initial 4.22G - 2.45T - tank/srv@2018-01-09 106G - 3.40T - tank/srv@2018-01-14 50.0M - 3.27T - tank/srv@2018-01-17 48.8M - 3.16T - tank/srv@2018-01-19 56.9M - 3.09T - tank/srv@2018-01-30 48.6M - 2.72T - tank/srv@2018-02-12 104M - 2.49T - root@grandidier:~# zfs list -t snap -r tank/srv NAME USED AVAIL REFER MOUNTPOINT tank/srv@initial 4.22G - 2.45T - tank/srv@2018-01-09 106G - 3.40T - tank/srv@2018-01-14 50.0M - 3.27T - tank/srv@2018-01-17 48.8M - 3.16T - tank/srv@2018-01-19 56.9M - 3.09T - tank/srv@2018-01-30 48.6M - 2.72T - tank/srv@2018-02-12 104M - 2.49T - root@grandidier:~#

(Примечание: добавлено пространство между «... snap -r») Однако, если я помещаю команду в трубку и использую обратную тиковую замену, чтобы получить результат команды, я получаю:

root@grandidier:~# export NEW=`zfs list -t snap -r tank/srv | tail -1 | awk '{print $1}'`; echo $NEW tank/srv@2018-02-12 root@grandidier:~# export NEW=`zfs list -t snap  -r tank/srv | tail -1 | awk '{print $1}'`; echo $NEW cannot open ' -r': invalid dataset name cannot open 'tank/srv': operation not applicable to datasets of this type root@grandidier:~#

Я нахожу это непонятным и обескураживает. Я думаю, что я могу обойти эту проблему, создав свои сценарии без лишнего пробела, но мне очень хотелось бы знать, почему это происходит в первую очередь.

Это на Ubuntu 16.04 LTS (актуально ) bash 4.3.48 ZFS 0.6.5.11-1ubuntu3

Изменить: ответить на первые три комментария (и сохранить форматирование кода)

root@grandidier:~/bin# printf '%q\n' "$IFS" $' \t\n'

Кажется, что $ (.. .) Синтаксис также подпадает под эту проблему (см. следующий комментарий.)

Я не уверен, что может возникнуть нечто похожее на пространство, но похоже, что это проблема. Я скопировал эту строку в / из документа Google и, возможно, сделал какой-то перевод на пробелы. Если я добавлю дополнительное пространство в документ google и скопирую / вставлю в xterm, сообщается об ошибке. Если я отредактирую команду (в командной строке) и удаляю / вставляю два пробела, команда работает без ошибок.

Очевидно, что Документы Google не являются хорошим редактором программ. (Я на самом деле не использую его таким образом, а скорее делаю заметки и сохраняю копии команд, когда я прорабатываю что-то. Я, вероятно, должен придерживаться чего-то вроде vim.)

2
задан 14 February 2018 в 06:07

0 ответов

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

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