O Cryptsetup tem uma opção -d
ou --keyfile
e com um traço como nome de arquivo, cryptsetup lê a partir do stdin (consulte manpage)
Com isso, você poderia passar a senha de uma variável de ambiente para cryptsetup:
echo $password | cryptsetup luksOpen /dev/sdXX cryptroot -d -
A sintaxe exata depende do seu script.
Se isso for uma boa ideia, em uma perspectiva de segurança é outra pergunta ...