Видимое содержимое двух переменных в bash одинаково, но имеет разную длину

По умолчанию функция USERSHARE samba отключена в Fedora. Включение его недостаточно, так как libshare в ZFSOnLinux требует установки определенного пользовательского пути .

Чтобы заставить его работать, установите следующее в /etc/samba/smb.conf :

[global]
    usershare path = /var/lib/samba/usershares
    usershare max shares = 100
    usershare allow guests = yes
    usershare owner only = no

Затем сделайте каталог / var / lib / samba / usershares как root:

mkdir -p /var/lib/samba/usershares

После перезапуска smb и nmb zfs set sharemb = on будет работать.

0
17.01.2019, 17:50
1 ответ
$ echo foo |shasum -a 256
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c  -    
                                                                ^^

Обратите внимание, что в выводе shasumперед именем файла есть два пробела. Когда ввод берется со стандартного ввода, shasumпечатает тире в качестве имени файла.

Если вы запустите echo foo | shasum | od -c, вы можете проверить это, а также увидеть новую строку в конце. Однако новая строка удаляется подстановкой команды, поэтому ее явное удаление с помощью trничего не делает. (см. здесь и здесь)

Два пробела и тире — это три символа, которые вызывают разницу в ваших счетах.

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

$ h=$(echo foo | shasum -a 256)
$ h=${h%% *}
$ printf ">%s<\n" "$h"
>b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c<

${var%%pattern}расширяется до значения varс удалением самого длинного суффикса, соответствующего pattern.

2
28.01.2020, 02:30

Теги

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