我曾经认为,从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
Run Code Online (Sandbox Code Playgroud)
用法: # nextval tablename
逃避\$我得到一个错误:awk: backslash not last character on line.这$不是双引号,为什么bash正在取代呢?
也许你真正需要改变的部分就是这个
'INSERT INTO \""$1"\"'
Run Code Online (Sandbox Code Playgroud)
至
"INSERT INTO \"$1\""
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |