我是shell编程新手
我有一个命令sed -i '$d' ~/.bash_history
,它可以正常工作。我希望别名它,所以我把它写成
alias rh='sed -i "$d" ~/.bash_history'
当我执行rh
时,它会毫无错误地执行,但不会删除文件中的任何内容。我觉得它与引号有关。
我做错了什么?
答案 0 :(得分:6)
Bash计算“$ d”的值,如果未定义$ d,则将其替换为“”。 试试这个:
alias rh='sed -i '\''$d'\'' ~/.bash_history'
答案 1 :(得分:2)
使用函数可以简化引用:
rh () { sed -i '$d' ~/.bash_history; }
答案 2 :(得分:1)
在我的情况下,我必须实现相当于以下的混合解决方案:
package aminur.test.formatters;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.ParseException;
public class ThreadSafePriceFormatter {
// the price formats
private static final ThreadLocal<DecimalFormat> pointSeparatedFormat = new ThreadLocal<DecimalFormat>() {
@Override
protected DecimalFormat initialValue() {
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
return (new DecimalFormat("#0.00", symbols));
}
};
private ThreadSafePriceFormatter() {
}
public static String formatPointSeparated(double price) {
return pointSeparatedFormat.get().format(price);
}
public static Number parsePointSeparated(String price)
throws ParseException {
return pointSeparatedFormat.get().parse(price);
}
}