我有一个从 sql 文件池中获取表的下一个 ID 的命令,现在我正在尝试使用 shell 函数将此命令作为别名放在 ~/.bashrc 中,但我不知道如何转义$
所以它进入 awk 并没有被 bash 取代,下面是代码.bashrc
:
function nextval () {
grep 'INSERT INTO \""$1"\"' *.sql | \
awk '{print $6}' | \
cut -c 2- | \
awk -F "," '{print $1}' | \
sort -n | \
tail -n 1 | \
awk '{print $0+1}'
}
alias nextval=nextval
用法:# nextval tablename
转义\$
我得到一个错误:awk: backslash not last character on line
。$
不在双引号内,那么为什么用 bash 替换它呢?