Fish Shell别名无法保留变量调用问题求助
Fish Shell 别名保留awk变量的解决方法
问题原因
你用双引号定义别名时,Fish会把$2和$3当成自身的位置参数变量解析——但定义别名时这些变量没有赋值,所以被替换成空字符串,最终awk的print语句就变成了空的{print }。
两种解决办法
方法一:转义$符号
在awk的变量前加反斜杠\,阻止Fish解析这些$,让它们原样传给awk:
alias --save data="awk -F ',' '{print \$2 \$3}' Data.csv | sort -n | uniq -cd | sort -n"
方法二:用单引号包裹整个别名内容
单引号里的内容Fish不会做任何变量展开,直接原样保存。注意要把awk原有的单引号换成双引号,避免语法冲突:
alias --save data='awk -F "," "{print $2 $3}" Data.csv | sort -n | uniq -cd | sort -n'
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

