Ваш сценарий, как сейчас, выполняет раскрытие подстановочных знаков, чтобы заменить подстановочные знаки всеми файлами в вашем текущем рабочем каталоге. Это становится очевидным, если вы добавите опцию set -x
в начало скрипта.
$ ./expr_script.sh 2 '*' 2
+ args='2 * 2'
++ expr 2 -23.txt add_location_name.py expr_script.sh kusalananda 'Movie A (2014)' 'Movie B (2016)' one.test popup_script.sh somefile2.txt somefile.txt somethings texts three.test turnSignal.v two.test 2
expr: syntax error
+ result=
+ echo '2 * 2 = '
2 * 2 =
Вам не понадобится расширение имени файла в арифметическом скрипте, поэтому отключите расширение глобуса с помощью опции set -f
.
#!/bin/bash
set -f
##set -x
args="$@" # the first line of the script
result=$(expr $args)
echo "$args = $result"
Это работает:
$ ./expr_script.sh 2 '*' 2
2 * 2 = 4
Используйте Gnupg или P7zip . Оба доступны в виде пакетов на OpenWRT.
С Gnupg вы можете использовать шифрование с открытым ключом (вы шифруете одним или несколькими открытыми ключами, и кто-то с соответствующим закрытым ключом может расшифровать) ( gpg -e
) или шифрование с помощью ключа, полученного из пароля ( gpg -c
). GnuPG фактически не использует AES по умолчанию, но это не имеет значения .
С помощью p7zip запустите 7z -mem = AES128 -p archive.zip myfile
. Помните, что пароль попадет в историю вашей оболочки и будет виден другим пользователям на том же компьютере, если они запустят ps
во время выполнения процесса 7z
. Обратите внимание: если вы забыли параметр -p
, 7z
создаст незашифрованный архив.
Не используйте команду zip
или метод ZipCrypto
для p7zip. Он создает зашифрованные zip-файлы с использованием древнего сломанного алгоритма шифрования.
Не используйте команду openssl
. Хотя он может использовать AES-CBC (в дополнение к ряду небезопасных алгоритмов, таких как DES- * или * -ECB), способ генерации ключа из пароля нарушен (даже если вы его солите, что не так. по умолчанию он слишком медленный, поэтому его легко перебрать).