3

シェルプログラミングは初めてです

正常に動作するコマンドsed -i '$d' ~/.bash_historyがあります。エイリアスにしたかったので、次のように書きました

alias rh='sed -i "$d" ~/.bash_history'

実行するrhと、エラーなしで実行されますが、ファイルから何も削除されません。引用符に関係していると感じています。

私は何を間違っていますか?

4

3 に答える 3

6

Bash は "$d" の値を計算し、$d が定義されていない場合は "" に置き換えます。これを試して:

alias rh='sed -i '\''$d'\'' ~/.bash_history'
于 2013-09-12T17:48:57.493 に答える
2

関数を使用すると、引用が簡単になります。

rh () { sed -i '$d' ~/.bash_history; }
于 2013-09-12T18:23:24.203 に答える
1

私の場合、次のようなハイブリッド ソリューションを実装する必要がありました。

alias rh='function _rh(){ sed -i '\''$d'\'' ~/.bash_history ; };_rh'
于 2016-03-24T06:43:14.460 に答える