首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在BASH中使用泛型函数来获取当前的目录和文件名?

在BASH中使用泛型函数来获取当前的目录和文件名,可以通过以下步骤实现:

  1. 创建一个泛型函数,命名为get_current_directory_and_filename
  2. 在函数内部,使用$0来获取当前脚本的路径和文件名。
  3. 使用dirname命令结合$0,可以获取当前脚本所在的目录。
  4. 使用basename命令结合$0,可以获取当前脚本的文件名。
  5. 在函数中,使用echo命令将获取到的目录和文件名输出。

以下是一个示例的泛型函数代码:

代码语言:txt
复制
get_current_directory_and_filename() {
    local script_path="$0"
    local current_directory=$(dirname "$script_path")
    local current_filename=$(basename "$script_path")
    echo "当前目录:$current_directory"
    echo "当前文件名:$current_filename"
}

使用该函数可以获取当前的目录和文件名。在BASH中调用该函数的方式如下:

代码语言:txt
复制
get_current_directory_and_filename

执行以上命令后,将会输出当前的目录和文件名。

这个泛型函数可以应用于各种脚本和程序中,方便获取当前的目录和文件名信息。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云函数计算(云函数):https://cloud.tencent.com/product/scf
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云容器服务(TKE):https://cloud.tencent.com/product/tke

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《现代Typescript高级教程》类型体操

让我们继续探讨 extends 关键字、TS 官方内置一些型函数以及它们使用。 extends 关键字类型约束 在,我们可以使用 extends 关键字型类型进行约束。...我们还可以结合内置型函数来实现更复杂类型操作。以下是一个示例,展示了如何使用 Pick 创建一个函数,该函数从给定对象中选择指定属性,并返回一个新对象。...这个例子结合了型、内置型函数 Pick、keyof 操作符 extends 关键字,展示了如何在 TypeScript 处理复杂类型操作和转换。...内置型函数提供了一些常用类型转换工具, Partial、Required Pick,可以帮助我们更方便地处理类型操作。...通过结合型、extends 关键字、内置型函数其他高级类型概念,我们能够在 TypeScript 编写更复杂、类型安全代码,并利用 TypeScript 强大类型系统提高代码可读性、可维护性可扩展性

28630

【Rust 基础篇】在函数结构体中使用

本篇博客将详细介绍如何在函数结构体中使用型,包括型函数定义、型参数约束以及型结构体实现。 一、型函数 在 Rust ,我们可以定义型函数,它可以适用于多种不同类型参数。...在 Rust ,我们可以使用 where 关键字添加型参数约束条件。...在型参数 T 约束条件,我们使用 where 关键字指定 T 必须实现 std::ops::Add trait,以确保 + 运算符可用。...型广泛应用于以下场景: 容器类型( Vec HashMap):可以在容器存储操作各种类型数据。 数据结构算法:可以编写通用数据结构算法,适用于不同类型数据。...Trait trait bound:可以使用型参数来实现和约束 trait。 总结 本篇博客详细介绍了如何在函数结构体中使用型。通过型,我们可以编写通用代码,提高代码复用性灵活性。

36730

Go: 利用型提升代码重用性, 实用示例详解

型是现代编程实现代码重用一种强大工具,特别是在处理不同数据类型但需要执行相似操作场景。通过定义型函数或类型,开发者可以写出既灵活又可维护代码,同时减少重复代码需要。...在Go语言中,引入允许对各种数据类型执行相同逻辑,而无需为每种数据类型编写单独函数或数据结构。下面通过一些例子,详细解释型如何在Go实现代码重用。...示例1:型切片过滤器 假设我们需要一个功能,从切片中过滤出符合特定条件元素。在没有情况下,我们可能需要为整型切片、字符串切片等编写不同过滤函数。...go package main import "fmt" // Filter 是一个型函数,可以处理任何类型切片 func Filter[T any](slice []T, fn func(T)...型不仅提高了代码可重用性灵活性,还帮助保持代码库简洁一致性。Go语言通过引入型,为开发者提供了强大工具来写出更加清晰、高效且类型安全代码。

12910

shell语法学习

14.命令行参数 在许多情况下,直接从命令 shell 获取参数是有益。下面的示例演示了如何在 bash 执行此操作。 #!...23.从 Bash 脚本创建目录 使用 shell 脚本运行系统命令能力使开发人员工作效率大大提高。下面的简单示例将向您展示如何在 shell 脚本创建目录。 #!...30.解析日期时间 下一个 bash 脚本示例将向您展示如何使用脚本处理日期时间。同样,Linuxdate 命令用于获取必要信息,我们程序执行解析。 `#!...此外,您需要提供文件目录名作为命令行参数。对当前工作目录使用句点(.)。 35.打印文件或目录数量 下面的 Linuxbash 脚本查找给定目录存在文件或文件夹数量。...Bash 请记住以 root 身份运行此 Linuxshell 脚本。 37.使用 Bash 备份脚本 Shell 脚本提供了一种强大方法备份文件目录

1.2K40

40 个简单又有效 Linux Shell 脚本示例

14、命令行参数 在许多情况下,直接从命令 shell 获取参数是有益。下面的示例演示了如何在 bash 执行此操作。 #!...23、从 Bash 脚本创建目录 使用 shell 脚本运行系统命令能力使开发人员工作效率大大提高。下面的简单示例将向您展示如何在 shell 脚本创建目录。 #!...下面的简单程序向我们展示了如何在 bash使用 awk 命令执行此操作。它将列出当前工作目录中最近更新或创建文件。#!...此外,您需要提供文件目录名作为命令行参数。对当前工作目录使用句点(.)。 35、打印文件或目录数量 下面的 Linuxbash 脚本查找给定目录存在文件或文件夹数量。...37、使用 Bash 备份脚本 Shell 脚本提供了一种强大方法备份文件目录。以下示例将备份过去 24 小时内修改每个文件或目录。该程序使用 find 命令执行此操作。 #!

23910

linux常见面试题

有些程序在一个环境工作而在另一个环境无法工作,因此它也可以被视为选择使用哪个环境一个因素。 10)BASHDOS之间基本区别是什么?...BASHDOS控制台之间主要区别在于3个方面: BASH命令区分大小写,而DOS命令则不区分; 在BASH下,/ character是目录分隔符,\作为转义字符。...在DOS下,/用作命令参数分隔符,\是目录分隔符 DOS遵循命名文件约定,即8个字符文件名后跟一个点,扩展名为3个字符。BASH没有遵循这样惯例。 11)GNU项目的重要性是什么?...44)如何在命令行提示符插入注释? 通过在实际注释文本之前键入#符号创建注释。这告诉shell完全忽略后面的内容。例如“#这只是shell将忽略注释。”...ls -al * .txt 49)编写将执行以下操作命令: 查看当前后续目录扩展名为c所有文件,v -strip,from结果v(可以使用sed命令)- 使用结果并使用grep命令搜索所有出现单词

2.5K10

Go:型如何通过comparable接口实现类型安全

下面将详细解释型如何在Go语言中保证类型安全。 什么是类型安全? 类型安全意味着编译器能够验证各种操作是否按照预期数据类型进行。...型如何增强类型安全 减少类型断言和类型转换需求:在没有情况下,例如在Go早期版本,常常需要使用空接口(interface{})来处理不确定类型数据。...:使用代码更加清晰可维护。...型函数或类型用户可以清楚地看到哪些类型是允许,这避免了因类型错误而导致逻辑错误。同时,型还支持创建能够操作多种数据类型通用算法,而不需要重复代码。...引入不仅提高了代码质量,还通过减少错误可能性提高了开发效率。

8610

【Kotlin】型 ① ( 型类 | 型参数 | 型函数 | 多型参数 | 型类型约束 )

文章目录 一、型类 二、型参数 三、型函数 四、多型参数 五、型类型约束 一、型类 ---- 定义一个 型类 , 将 型参数 T 放在 尖括号 , 该型参数放在 类名后...---- 通常情况下 , 型参数 都使用 T 表示 , 使用其它字母 或者 字符串 都可以表示 型参数 , 但是 约定俗成 都使用 T 表示型 ; 在下面的代码 , 使用 M 作为 型参数...---- 函数 参数 或 返回值 类型为 型类型 , 则该函数称为 型函数 ; 代码示例 : 该代码 , 型函数 logT 参数 返回值 都是 T 型参数 类型 ; class...---- 型函数 如果涉及到 匿名函数 参数 , 匿名函数 参数返回值 都是型 的话 , 在该型函数 可能需要使用多个型 , 使用不同字母表示不同型 ; 如果函数 引入了新型类型...如果类 引入了新型类型 , 需要在 class 关键字 主构造函数 之前 , 使用 尖括号 注明 ; class Student(_item: T) { } 型函数 型参数

2.7K10

Linux中一种友好find替代工具(fd命令)

安装完成后,你可以通过运行帮助获得所有可用命令行选项完整概述,通过 fd -h 获取简明帮助,或者通过 fd –help 获取更详细帮助。...fd 递归地搜索当前目录以查找与莫参数匹配任何文件/或目录。...例如,要查找当前目录文件名包含 services 所有文件,可以使用: $ fd -tf services downloads/services.md 以及,找到当前目录文件名包含 services...所有目录: $ fd -td services applications/services library/services 如何在当前文件夹列出所有带 .md 扩展名文档?...你甚至可以使用 -H 参数来搜索隐藏文件: fd -H sessions . .bash_sessions 指定目录 如果你想搜索一个特定目录,这个目录名字可以作为第二个参数传给 fd: $ fd

2.9K20

Kotlin学习日志(四)函数

我这一顿操作意义何在呢?不是说默认参数吗?请听我慢慢道来,Kotlin引入了默认参数概念,允许在定义函数时直接指定输入参数默认值。...注意到尖括号内部制定了数组元素类型,这正是写法“”。由“Array”声明而来变量可称作型变量,至于等号后面的arrayOf*便是型函数。...定义型函数时,需要在函数名称前面添加“”,表示以T声明参数(包括输入参数输出参数),其参数类型必须在函数调用时指定,代码示例如下: //Kotlin允许定义全局函数,即函数可在单独kt文件定义...,就是它声明了扩展自Array,就不能用于浮点数组双精度数组及其他数组,所以,为了增强交换函数通用性,必须把swap改写为型函数,即用T代替Int,改动代码如下: fun <T...4.2 日期时间函数 在日常开发,除了数组之外,日期时间相关操作也是很常见,比如获取当前日期、获取当前时间、获取指定格式日期时间等,基本上每一个采取Java编码Android工程都需要一个

1.8K10

Kotlin Vocabulary | Reified: 类型擦除后再生计划

但是使用型也会有一些限制,比如当您在型函数想要获取型所表示类型具体信息时,编译器就会报错,提示说相关信息不存在。而 "reified" 关键字,正是为了解决此类问题诞生。...为了达到这一目标,Kotlin 提供了一个特别的关键字 reified,使用它就可以在型函数获取所需类型信息。只要您对实现方式有所了解,就可能会不禁惊呼: 这怎么可能!...下面就来看看这是如何在 Kotlin 实现型 在 Java 5.0 版本之前并未支持型,那时 Java collection 是没有类型信息。...但是,当在型函数需要获取类型信息时,类型擦除实现方式就显得力不从心了。...从反编译后代码可以发现,当调用 reified 修饰内联函数时,编译器会复制该函数体,并将型类型替换为实际使用类型。这样,您就可以不用将类传递给函数也能够获取到相应类型信息了。

1.3K10

【愚公系列】2021年12月 Typescript-

文章目录 一、typeScript型 1、定义 2、型函数 3. 型类 4....定义 型函数 型类 型接口 1、定义 型:软件工程,我们不仅要创建一致定义良好API,同时也要考虑可重用性。...在像C#Java这样语言中,可以使用创建可重用组件,一个组件可以支持多种类型数据。 这样用户就可以以自己数据类型来使用组件。...//数组型 也可以使用数组型 Array 表示数组 let arr: Array = [1, '1', true, 3, 5]; //number[] 定义返回值类型...T 我们在函数名后添加了 ,其中 T 用来指代任意输入类型, 在后面的输入 value: T 输出 Array 即可使用了。

55220

【R极客理想系列文章】RHadoop培训 之 R基础课

如果你想这样做,这些对象将会写入当前目录下一个叫.RData文件,并且所有在这次会话中用过命令行都会被保存在.Rhistory 文件。...绑定任意列表 attach() 是一个型函数。它不仅允许搜索路径绑定目录和数据框,而且还可以绑定其他对象。...这个文件包括你每次执行R时一些自动运行命令。 类,型函数和面向对象 一个对象类决定了它会如何被一个型函数处理。相反,一个型函数由参数自身类种类决定完成特定工作或者事务。...如果参数缺乏任何类属性,或者在该问题中有一个不能被任何型函数处理类,型函数会有一种默认处理方式。 下面的一个例子使这个问题变得清晰。类机制为用户提供了为特定问题设计编写型函数便利。...methods() 得到当前对某个类对象可用型函数列表: methods(class="data.frame") 相反,一个型函数可以处理类同样很多。

2.8K20

【Kotlin】型总结 ★ ( 型类 | 型参数 | 型函数 | 多型参数 | 型类型约束 | 可变参数结合型 | out 协变 | in 逆变 | reified 检查型参数类型 )

文章目录 一、型类 二、型参数 三、型函数 四、多型参数 五、型类型约束 六、可变参数 vararg 关键字与型结合使用 七、使用 [] 运算符获取指定可变参数对象 八、型 out 协变...都使用 T 表示型 ; 代码示例 : 下面的代码 , 声明了 Student 型类 , 该型类 接收 T 类型型参数 , 在主构造函数接收 T 类型参数 , 在该型类声明了 T...---- 函数 参数 或 返回值 类型为 型类型 , 则该函数称为 型函数 ; 代码示例 : 该代码 , 型函数 logT 参数 返回值 都是 T 型参数 类型 ; class...---- 型函数 如果涉及到 匿名函数 参数 , 匿名函数 参数返回值 都是型 的话 , 在该型函数 可能需要使用多个型 , 使用不同字母表示不同型 ; 如果函数 引入了新型类型...如果类 引入了新型类型 , 需要在 class 关键字 主构造函数 之前 , 使用 尖括号 注明 ; class Student(_item: T) { } 型函数 型参数

3.8K10

Golang 型实现原理

文章目录 1.有 interface{} 为什么还要有型?...2.型实现原理 Go 语言型实现采用了一种基于类型参数方式。设计目标是实现更加通用类型安全代码,而不是通过接口(像空接口 interface{})类型断言实现动态类型处理。...在函数体内,可以使用 T 表示参数返回值类型。 型数据结构 型也可以用于创建通用数据结构,型切片、型映射等。这样可以更灵活地处理不同类型数据。...虚拟方法表 在编译器实现一种方法是使用 Virtual Method Table。 型函数被修改成只接受指针作为参数方式。然后,这些值被分配到堆上,这些值指针被传递给型函数。...与值类型相反,指针接口在内存总是有相同布局。编译器将为指针接口调用生成同一个型函数副本。就像虚函数表一样,型函数接收指针,因此需要一个表动态地查找方法地址。

39310

通过修改CoreCLRClrHost实现自托管程序

上一篇我们讲了如何在windowsLinux上编译CoreClr问题 虽然文章使用是windows 10 (Bash)环境,但是也可以做为ubuntu环境参考。...但这次想达到目标是不需要指定Runtime目录也不需要指定dll文件名,如下: demo.exe 这样是不是写发布一个自托管程序是一样?接下来,我们通过修改代码实现这一目标。...,而是指向加载目录(也就是程序执行目录appPath或是指向子目录),我使用是后者指向了一个名为**Runtimes**目录。...其实解决方案就是得到exeName后,获取当前执行文件全路径,提取出路径和文件名两个部分,并将文件名进行替换,这样可执行文件在加载时就会默认加载与它同名程序集文件,做为ExecuteAssembly...Demo修改源代码,已经上传到QQ群文件(Demos\CoreCLRDemo.zip),仅供参考。

1.3K30

一起学shell bash编程(2)

一起学shell bash编程(1) 回顾完之后,这次推文主要学习如何在bash写更好loops,还有一些更加高级shell bash编程知识。事不宜迟,开始今天学习。...,该代码根据我们给予“根”,使用 {}进行匹配,指明了对应输入生成文件。...Bash有一个输入流( stdin)两个输出流( stdout stderr)。...如何在bash操作文件路径? 通常,我们必须在bash操作文件名以删除其中各个部分。也许我们想要删除目录名称,或者仅保留文件名,或者仅保留不带扩展名文件名,或者删除扩展名等等。...下面让我看一些例子: FILE=/A/B/C.txt.gzecho $FILE 预期打印: /A/B/C.txt.gz 从名称删除目录,并仅使用basenameshell命令保留文件名: FILE=

2K50

Swift学习:

它能让你避免代码重复,用一种清晰抽象方式表达代码意图。这种说法很模糊,下面我们结合一个示例来说明作用。...三、型类型 3.1.系统类型使用型 事实上,型类型使用贯穿了Swift语言。例如,SwiftArrayDictionary都是型集合。...比如,我们现在扩展型类型Stack,为其添加计算型属性topItem,用于获取栈顶元素,代码示例如下: extension Stack { //返回当前栈顶元素而不会将其从栈移除 var...五、类型约束 swapTwoValues(::)函数Stack类型可以作用于任何类型。但如果可以为型函数型类型类型添加一个特定类型约束,将会是非常有用。...: U) { // 这里是型函数函数体部分 } 5.2.型类型约束实践 下面的型函数用于查找数组某个元素索引位置;但由于for循环里用到了对象比较"==",要确保所有的类型都适用,所以在型函数添加了类型约束

1.5K20

TypeScript系列教程六《型》

软件工程,我们不仅要创建一致定义良好API,同时也要考虑可重用性。 组件不仅能够支持当前数据类型,同时也能支持未来数据类型,这在创建大型系统时为你提供了十分灵活功能。...在像C#Java这样语言中,可以使用创建可重用组件,一个组件可以支持多种类型数据。 这样用户就可以以自己数据类型来使用组件。...在型函数里面遍历数组,是不是type可以代表数组,可以使用数组length属性?...我们在类那节说过,类有两部分:静态部分实例部分。 型类指的是实例部分类型,所以类静态属性不能使用这个型类型。...例如,这里我们想从一个给定名称对象获取一个属性。

90910

linux bash shell 特殊字符大全

作为文件名一部分,在文件名开头,表示该文件为隐藏文件,ls一般不显示出来(ls -a 可以显示); 3. 作为目录名,一个点代表当前目录,两个点号代表上层目录当前目录目录)。...因为是在子shell内运行,因此在括号外面是没有办法获取括号内变量值,但反过来,命令组内是可以获取到外面的值,这点有点像局部变量全局变量关系,在实作,如果碰到要cd到子目录操作,并在操作完成后要返回到当前目录时候...这个内部变量$HOME是一样。默认表示当前用户目录(主目录),这个~/效果一致,如果波浪号后面跟用户名,表示是该用户目录。...作为文件名一部分,在文件名开头,表示该文件为隐藏文件,ls一般不显示出来(ls -a 可以显示); 3. 作为目录名,一个点代表当前目录,两个点号代表上层目录当前目录目录)。...因为是在子shell内运行,因此在括号外面是没有办法获取括号内变量值,但反过来,命令组内是可以获取到外面的值,这点有点像局部变量全局变量关系,在实作,如果碰到要cd到子目录操作,并在操作完成后要返回到当前目录时候

6.5K30
领券