Это кажется на желание задания крона. Большинство демонов крона не позволяет, поддерживают предложение, но Вы могли выполнять задание каждую минуту как корень с помощью чего-то как следующее в /etc/cron.d/encrypted-backup
(принятие Вас хочет работать как корень):
* * * * * root rsync [...]
Вы не можете хранить двоичных данных данных (двоичные данные, как правило, относятся к данным с произвольными байтовыми значениями, не только значения байтов, которые являются действительными Персонажи, но не являются особенным иным образом) в Bash
Переменные Bash Bash
не поддерживают значение байта 0
в его переменных (и помните, что вы не можете пройти Такие строки в аргументах командам, как те, которые являются Nul разграничены строки).
Вы можете в ZSH
, хотя. Также помните, что бруснические полосы под заместительными командами вытягивают новые символы Newline (0xa Bytes, возможно, отличаются на Cygwin), так что, вероятно, лучше использовать READ
здесь:
$ echo 323 | openssl dgst -sha1 -binary | hd
00000000 3a 8b 03 4a 5d 00 e9 07 b2 9e 0a 61 b3 54 db 45 |:..J]......a.T.E|
00000010 63 4b 37 b0 |cK7.|
00000014
Смотрите, как это содержит как a 0 байт, так и новенький символ (0xa )
$ echo 323 | openssl dgst -sha1 -binary | IFS= LC_ALL=C read -ru0 -k20 var &&
var=${var}World
$ printf %s $var | hd
00000000 3a 8b 03 4a 5d 00 e9 07 b2 9e 0a 61 b3 54 db 45 |:..J]......a.T.E|
00000010 63 4b 37 b0 57 6f 72 6c 64 |cK7.World|
00000019
Обратите внимание, что вы можете пройти эту переменную для встроенных команд ( PrintF
...).
Теперь, если все, что вы хотите, это хэш снова, то это просто
(echo 323 | openssl dgst -sha1 -binary; printf %s World) |
openssl dgst -sha1 -binary
Нет необходимости в переменной.