用linux shell 写一个函数,该函数有一个参数,参数为路径,函数功能是提取路径最后一级目录的名字
时间: 2024-03-27 11:39:12 浏览: 13
你好!针对你的问题,可以使用shell的basename命令来实现。
以下是示例函数代码:
```bash
extract_dir_name() {
path=$1
dir_name=$(basename "$path")
echo $dir_name
}
```
函数中的basename命令可以提取出路径中的最后一个目录名,存储在dir_name变量中,然后通过echo输出即可。
使用方法:
```bash
$ extract_dir_name /home/user/documents
documents
```
希望能够帮助到你!
相关问题
linux 编写一个shell函数,该函数接收一个UID作为参数,并根据UID显示对应的用户名
可以使用`getent`命令来获取UID对应的用户名,具体实现如下:
```
function get_username_by_uid() {
local uid=$1
local username=$(getent passwd "$uid" | awk -F: '{print $1}')
echo "$username"
}
```
这个函数接收一个UID作为参数,然后使用`getent`命令获取该UID对应的用户信息,再使用`awk`命令提取出用户名,最后将用户名输出。
Linux系统编写一个Shell脚本,使用source+函数实现位置参数的遍历,其中函数主要实现打印位置参数的功能
可以使用以下Shell脚本实现:
```bash
#!/bin/bash
# 定义函数,打印位置参数
print_args() {
echo "位置参数个数:$#"
echo "位置参数列表:$@"
}
# 使用source命令调用脚本时,执行以下代码
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "请使用 source 命令调用该脚本"
exit 1
fi
# 调用函数,打印位置参数
print_args "$@"
```
在该脚本中,首先定义了一个函数`print_args`,该函数用于打印位置参数的个数和列表。
接下来,使用`if`语句判断当前脚本是否是直接执行的,如果是,则输出提示信息并退出;否则,调用`print_args`函数,传入位置参数`"$@"`。
最后,使用`source`命令调用该脚本时,就会执行`print_args`函数,输出位置参数的个数和列表。例如,执行以下命令:
```bash
$ source test.sh a b c
```
就会输出:
```
位置参数个数:3
位置参数列表:a b c
```