我使用了一个名为ThousandsDotting
的别名,它为每个3个数字加点.
(数千个经典点),因此100000
成为100.000
。
它在shell中工作正常,但是在函数中不起作用。
示例文件example.sh
:
#!/bin/bash
function test() {
echo "100000" | ThousandsDotting
}
alias ThousandsDotting="perl -pe 's/(\d{1,3})(?=(?:\d{3}){1,5}\b)/\1./g'"
test
如果我运行它,这就是我得到的:
$ ./example.sh
example.sh: line 3: ThousandsDotting: command not found.
在我的Bash Shell脚本函数中,将管道(或不使用管道,不管使用它)stdout数据到此
perl
命令的正确方法是什么? 最佳答案
默认情况下,别名在bash中受限制,因此只需启用它即可。
#!/bin/bash
shopt -s expand_aliases
alias ThousandsDotting="perl -pe 's/(\d{1,3})(?=(?:\d{3}){1,5}\b)/\1./g'"
function test() {
echo "100000" | ThousandsDotting
}
test
输出
100.000