Shell sed、别名和引号问题
我不熟悉shell编程 我有一个命令sed-I'$d'~/.bash_history,它工作得很好。我想给它取个别名,所以我把它写成Shell sed、别名和引号问题,shell,sed,alias,Shell,Sed,Alias,我不熟悉shell编程 我有一个命令sed-I'$d'~/.bash_history,它工作得很好。我想给它取个别名,所以我把它写成 alias rh='sed -i "$d" ~/.bash_history' 当我执行rh时,它执行时不会出错,但不会从文件中删除任何内容。我感觉它与引号有关 我做错了什么?Bash计算“$d”的值,如果未定义$d,则将其替换为“”。 试试这个: alias rh='sed -i '\''$d'\'' ~/.bash_history' 使用函数可以简化报价:
alias rh='sed -i "$d" ~/.bash_history'
当我执行rh
时,它执行时不会出错,但不会从文件中删除任何内容。我感觉它与引号有关
我做错了什么?Bash计算“$d”的值,如果未定义$d,则将其替换为“”。
试试这个:
alias rh='sed -i '\''$d'\'' ~/.bash_history'
使用函数可以简化报价:
rh () { sed -i '$d' ~/.bash_history; }
在我的情况下,我必须实施一个混合解决方案,相当于:
alias rh='function _rh(){ sed -i '\''$d'\'' ~/.bash_history ; };_rh'