无法测试 Bash 中是否存在文件

Unable to test whether a file exists in Bash

考虑以下 Bash 脚本:

function dosomething {
    local fname="~/.bash_profile"
    if [[ -f "$fname" ]]; then
        echo "proceeding"
    else
        echo "skipping"
    fi
}

dosomething

虽然我知道 ~/.bash_profile 存在,但我总是得到 "skipped"。为什么?

~ 仅在未加引号的情况下由 shell 扩展。当它被引用时,它是一个文字波浪符号。

local fname=~/.bash_profile