首页 > 系统相关 >Shell | 函数语法

Shell | 函数语法

时间:2023-07-13 11:55:35浏览次数:35  
标签:Shell 函数 basename banzhang 语法 zlq input home txt

系统函数

1、basename

基本语法:

basename [string / pathname] [suffix] (功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。

basename 可以理解为取路径里的文件名称

选项:

suffix 为后缀,如果 suffix 被指定了,basename 会将 pathnamestring 中的 suffix 去掉。

例子:截取该/home/zlq/banzhang.txt 路径的文件名称。

$ basename /home/zlq/banzhang.txt
banzhang.txt
$ basename /home/zlq/banzhang.txt .txt
banzhang

2、dirname

基本语法:

dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))

dirname 可以理解为取文件路径的绝对路径名称

例子:获取 banzhang.txt 文件的路径。

$ dirname /home/zlq/banzhang.txt
/home/zlq

自定义函数

基本语法:

[ function ] funname[()]
{
	Action;
	[return int;]
}

经验技巧:

(1)必须在调用函数地方之前,先声明函数,shell 脚本是逐行运行。不会像其它语言一样先编译。

(2)函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值return 后跟数值 n(0-255)

例如:计算两个输入参数的和。

$ touch fun.sh
$ vim fun.sh
#!/bin/bash
function sum()
{
	s=0
	s=$[$1+$2]
	echo "$s"
}
read -p "Please input the number1: " n1;
read -p "Please input the number2: " n2;
sum $n1 $n2;
$ chmod 777 fun.sh
$ ./fun.sh
Please input the number1: 2
Please input the number2: 5
7

标签:Shell,函数,basename,banzhang,语法,zlq,input,home,txt
From: https://www.cnblogs.com/zhangxuegold/p/17550070.html

相关文章

  • SQL窗口函数OVER详细用法
    #SQL窗口函数OVER详细用法OVER的定义:​OVER用于为行定义一个窗口,它对一组值进行操作,不需要使用GROUPBY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。OVER的语法OVER([PARTITIONBYcolumn][ORDERBYculumn])PARTITIONBY子句进行分组;......
  • 干货 | 深入理解深度学习中的激活函数
    理解深度学习中的激活函数在这个文章中,我们将会了解几种不同的激活函数,同时也会了解到哪个激活函数优于其他的激活函数,以及各个激活函数的优缺点。1.什么是激活函数?生物神经网络是人工神经网络的起源。然而,人工神经网络(ANNs)的工作机制与大脑的工作机制并不是十分的相似。不过在我......
  • Shell | 循环语句
    for循环基本语法1:for((初始值;循环控制条件;变量变化))do 程序done例子:从1加到100$touchfor1.sh$vimfor1.sh#!/bin/bashsum=0for((i=0;i<=100;i++))dosum=$[$sum+$i]doneecho$sum$chmod777for1.sh$./for1.sh5050基本语法2:for变量in值......
  • 函数
    函数创建和删除函数创建函数,需要createprocedure或createanyprocedure的系统权限,创建存储函数的语法和创建存储过程的类似create[orreplace]FUNCTION函数名[(参数[in]数据类型....)]return数据类型 ----注意此不能有分号{as|is}{说明部分}begin可执行部分return......
  • Shell | 判断语句
    if判断基本语法:(1)单分支if[条件判断式];then 程序fi或者if[条件判断式]then 程序fi(2)多分支if[条件判断式]then 程序elif[条件判断式]then 程序else 程序fi注意事项:​ ①[条件判断式],中括号和条件判断式之间必须有空格​ ②if后要有空格......
  • 1.8 运用C编写ShellCode代码
    在笔者前几篇文章中,我们使用汇编语言并通过自定位的方法实现了一个简单的MessageBox弹窗功能,但由于汇编语言过于繁琐在编写效率上不仅要考验开发者的底层功底,还需要写出更多的指令集,这对于普通人来说是非常困难的,当然除了通过汇编来实现ShellCode的编写以外,使用C同样可以实现编写,......
  • C语言动态分配内存的函数
    今天在学习中碰见了动态分配内存有关的函数:mallocrealloccallocfree。以下是详细的记录"动态内存":在程序运行期间,动态分配内存空间,一般是在"堆,heap"空间上分配。malloc:memoryallocate内存分配realloc:repeatallocate再分配——重新分配:一次内存分配完成之后,后面用......
  • 直接“printf”到char数组字符串——C语言snprintf函数
    注:我写这个只是为了备注并介绍一下这个神器。有关它的更详细用法,互联网的各个角落都不缺少资料。如果您和曾经的我一样是C语言的初学者,您有可能时常遇到那些“奇异”的字符串处理问题,例如,int里的数转成char数组字符串类型,在char数组中间插入或者删除什么东西,等等。要是采用传统方......
  • vue2-生命周期-了解生命周期和生命周期函数的概念
    1.生命周期&生命周期函数生命周期(LifeCycle)是指一个组件从创建->运行->销毁的整个阶段,强调的是一个时间段。生命周期函数:是由vue框架提供的内置函数,会伴随者组件的生命周期,自动按次序执行。注意:生命周期强调的是时间段,生命周期函数强调的是时间点。......
  • 魔法函数 __repr__() 和 __str__()的区别
    1'''2__repr__()和__str__()都是Python中的特殊方法,用于定义对象的字符串表示形式。它们之间的区别如下:31.__repr__(self):返回一个字符串,用于表示对象的“官方”字符串表示形式。这个字符串应该是可以用来重新创建对象的,并且应该尽可能准确和详细。4......