De acordo com a pergunta: (a) o script está no mesmo diretório que blah.deb
e (2) o usuário executará o script de algum outro diretório desconhecido. Nesse caso:
#!/bin/bash
sudo dpkg -i --someflags=abcd "${BASH_SOURCE[0]%/*}/blah.deb"
A linha shebang é atualizada para bash
, para que possamos usar a matriz BASH_SOURCE
, que informa a localização do script que está sendo executado.
Como isso evita a substituição de comandos, ele deve funcionar mesmo no caso patológico em que o nome do diretório termina com caracteres de nova linha.