我是 shell 编程新手
我有一个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'