Вы можете использовать squashfs
, чтобы создать сжатый версия вашей файловой системы.
Сначала проверьте, установлен ли squashfs-tools или нет. Я не знаю точного названия посылки. Так что поищите в Google, чтобы установить его на свой Ubuntu.
После установки выполните-
Чтобы переустановить это,
root.sfs
update-initramfs
и установите GRUB и перезагрузите update-grub
Есть два пути; либо используйте обратную косую черту для каждого специального символа, либо вместо этого используйте фигурные скобки вокруг пароля:
expect1.1> set pass "\$Hunter2"
$Hunter2
expect1.2> set pass {$Hunter2}
$Hunter2
Три! Три способа: пароль можно прочитать из файла thepasswordfile
; это имеет то преимущество, что пароль отсутствует в коде:
#!/usr/bin/env expect
# wrap with catch(n) or try(n) if you don't want an error to abort
# the code...
set fh [open thepasswordfile]
set password [gets $fh]
puts $password
В-четвертых, соберите пароль из программы, которая выводит его на стандартный вывод:
#!/usr/bin/env expect
if {[catch {exec ./getthepassword} results options]} {
puts $results
exit 1
}
puts $results
Это может выглядеть примерно так:
$ cat fromstdin
#!/usr/bin/env expect
if {[catch {exec ./getthepassword} results options]} {
puts $results
exit 1
}
puts $results
$ cat getthepassword
#!/bin/sh
echo '$Hunter2'
$ chmod +x fromstdin getthepassword
$ ./fromstdin
$Hunter2
$
Пять! Пятью способами пароль также можно прочитать из среды ( окружение (7)
, tclvars (n)
)
#!/usr/bin/env expect
set password $env(pass)
puts $password
при условии, что экспортный проход = '$ Hunter2'
или эквивалент был выполнен в родительском процессе до вызова этой реализации. Оборотная сторона: переменные среды передаются всем дочерним процессам, которым может потребоваться или не иметь права на просмотр пароля. В случае сомнений отключите переменную после ее использования или копирования:
#!/usr/bin/env expect
set password $env(pass)
unset env(pass)
...
У меня была аналогичная проблема, когда я хотел передать имя файла с $
в сценарии ожидания, и следующее сработало для меня
filePath=$(echo -n $filePath | sed -e 's/\$/\\\$/g')