Linux shell脚本:在函数中使用别名

Linux shell脚本:在函数中使用别名,第1张

概述Linux shell脚本:在函数中使用别名

我使用名为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.

什么是正确的方式pipe道 (或使用它没有pipe道,无论)标准输出数据到这个perl命令在我的Bash shell脚本的函数?

用java写一个linux工具

我如何从windows上的DLL从DLL调用函数?

根据文本文件中的单词检查用户input

模拟鼠标点击而不移动光标

将variables传递给C中的系统函数

批处理脚本传递多个参数来调用

windows批处理函数从参数中删除特殊字符

在C ++中传递函数指针

在shell中执行之前检查一个函数是否存在

windows自带文件中的.bat / .cmd函数库?

别名在bash中默认是有限制的,所以启用它。

#!/bin/bash shopt -s expand_aliases alias ThousandsDotting="perl -pe 's/(d{1,5}b)/1./g'" function test() { echo "100000" | ThousandsDotting } test

产量

100.000

在BASH 别名不被继承 。

更好的是你创建一个功能:

ThousandsDotting() { perl -pe 's/(d{1,5}b)/1./g' "$1"; }

然后,您可以将其用作流程替换 :

ThousandsDotting <(echo "100000") 100.000

alias在交互式bash 。 更改

#!/bin/bash

#!/bin/bash -i

从man bash :

如果存在-i选项,则该shell是交互式的。

别名不在bash中扩展,不能用作宏 。 您可以启用它们,有关更多信息请参阅BASH的永久指南http://tldp.org/LDP/abs/HTML/aliases.HTML 。

你可以像使用bash提供的常规工具一样实现宏:

#!/bin/bash function test() { echo "100000" | perl -pe 's/(d{1,5}b)/1./g' } test

您可以通过使函数具有参数来改善这种情况:通过这种方式,您可以将任何参数传递给函数test获得您使用别名时的准确值:

#!/bin/bash function test() { perl -pe 's/(d{1,5}b)/1./g' "$1" } test 100000

总结

以上是内存溢出为你收集整理的Linux shell脚本:在函数中使用别名全部内容,希望文章能够帮你解决Linux shell脚本:在函数中使用别名所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存