如何在bash字符串变量中用$ HOME的值替换前导的tilde~,反之亦然?

时间:2017-07-26 05:06:38

标签: linux bash scripting sh

这里的字符串变量是某个文件的路径名。应该是一个简单的解决方案,可能对其他人有用。

当我在.bashrc中编写一个简单的bash函数时出现了这个问题;见this thread

1 个答案:

答案 0 :(得分:1)

~ - > $HOME

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

重复

$HOME - > ~

除了为代码添加变通办法(可能会产生令人惊讶的效果)之外,这是您修复用户的最佳位置之一。那说......

copy() {
  local src=$1 dest=$2
  [[ $dest = $HOME/* ]] && dest="~/${dest#"$HOME/"}"
  scp "$src" "$dest"
}