String 在bash脚本中将Tilde替换为$HOME
我一直在互联网上搜寻,我看到了用String 在bash脚本中将Tilde替换为$HOME,string,bash,shell,replace,String,Bash,Shell,Replace,我一直在互联网上搜寻,我看到了用~替换~的例子,但我正在尝试另一种方法(例如用$HOME替换~,目前如果我试着运行这个: if [[ $directory_name = *~* ]]; then echo "${$directory_name/\~/$HOME}" fi 要替换它,我得到以下错误: ${$directory\u name/\~/$HOME}:替换错误 我在脚本文件的顶部有#!/bin/bash,当我运行它时,我一直在使用类似以下内容: sh测试脚本.sh 我也在Mac上的终
~
替换~
的例子,但我正在尝试另一种方法(例如用$HOME
替换~
,目前如果我试着运行这个:
if [[ $directory_name = *~* ]]; then
echo "${$directory_name/\~/$HOME}"
fi
要替换它,我得到以下错误:
${$directory\u name/\~/$HOME}:替换错误
我在脚本文件的顶部有#!/bin/bash
,当我运行它时,我一直在使用类似以下内容:
sh测试脚本.sh
我也在Mac上的终端上做这件事,所以我不确定这是否和它有关
再一次…新的bash脚本,所以虽然这似乎是合乎逻辑的,但我可能会把这一切都搞错并遗漏一些东西。谢谢!
echo“${directory\u name/\~/$HOME}”
您可能也不希望*~*
~
仅当它构成完整的第一个目录组件时才应替换为$HOME
。~user/
是useruser
的主目录。否则,~
只是一个字符……还有其他特殊情况--~
具有非-co属性例如,de>$HOME的含义;~+
也是如此。