Tilde не расширяется в кавычках (одиночный или двойной).
У вас есть три варианта:
удалить кавычки: string="~/hello" -> string=~/hello (уязвим для whitespace) использовать подстановку команд: string="~/hello" -> string="$(echo ~/hello)" (менее уязвим), как предложено @steeldriver, использовать переменную среды HOME: string="~/hello" -> string="$HOME/hello"