How to manually expand a special variable (ex: ~ tilde) in bash

前端 未结 15 2422
离开以前
离开以前 2020-11-22 09:34

I have a variable in my bash script whose value is something like this:

~/a/b/c

Note that it is unexpanded tilde. When I do ls -lt on this

15条回答
  •  猫巷女王i
    2020-11-22 09:45

    Here is the POSIX function equivalent of Håkon Hægland's Bash answer

    expand_tilde() {
        tilde_less="${1#\~/}"
        [ "$1" != "$tilde_less" ] && tilde_less="$HOME/$tilde_less"
        printf '%s' "$tilde_less"
    }
    

    2017-12-10 edit: add '%s' per @CharlesDuffy in the comments.

提交回复
热议问题