shell提取文件名字或目录名

shell提取文件名字或目录名,第1张

basename是专门用于从路径中提取出文件

从某个路径中提取出文件名(带文件尾缀)

返回file1.txt

若从某个路径中提取出文件名(不带文件尾缀),则需要在变量的后面加上后缀名

返回file2

dirname用于从路径中提取出目录名,使用方法为 dirname 文件目录

返回/your/path

返回/your

在路径1下用ls命令(ls:列出目前工作目录所含之文件及子目录)查看一下当前目录的内容,

一共包含三个文件:

file1 (文件)、file11(文件夹)、test.sh(shell脚本,也是我们的执行脚本),

第二条命令【./test.sh】执行了test.sh脚本,输出结果如图所示,列出了当前路径(路径1)的所有文件名。

下面看一下test.sh内容:

#!/bin/sh

file=$1

ls $file

登录后复制

第二行是将$1变量赋给file,

$+数字 一般是位置参数的用法,如果运行脚本的时候bai带参数,那du么可以在脚本里通过zhi $1 获取第一个参数,$2 获取第二个参数......依此类推,一共可以直接获取9个参数(称为位置参数)。

$0用于获取脚本名称,脚本内容更改为$0的时候,如下:

#!/bin/sh

file=$0 #位置参数,输出脚本名字

ls $file #输出变量file内容

登录后复制

输出结果会显示本执行脚本的名字:

折叠屏手机的时代来了

精选推荐

广告

获取所有常规文件的文件名并打印出来的脚本listfile.sh如下

#!/bin/bash

dir="/*"

dir=$1$dir

for f in $dir

do

if [ -f $f ]

then

echo $f

fi

done

使用方法:

$ listfile.sh PATH

原理:

PATH参数是路径,将路径后加上“/*”,代表该目录下的所有文件和目录名,利用for循环比较每个文件是否是常规文件( -f比较运算符),若if表达式为真则打印

举例:

ls -l

total 36

-rwxrwxr-x 1 lipeng lipeng 48 Nov 29 20:08 aaa.sh

drwxrwxr-x 2 lipeng lipeng 4096 May 4 2015 byteorder

drwxrwxr-x 8 lipeng lipeng 4096 May 3 2015 hello

-rwxrwxr-x 1 lipeng lipeng 122 Nov 29 20:16 listfile.sh

-rw-rw-r-- 1 lipeng lipeng 177 Aug 1 03:10 main.cpp

drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 16:42 matrix

drwxrwxr-x 5 lipeng lipeng 4096 Apr 28 2015 modbus

drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 10:10 shtest

drwxrwxr-x 2 lipeng lipeng 4096 Sep 16 18:21 test

$ ./listfile.sh .

./aaa.sh

./listfile.sh

./main.cpp


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

原文地址: http://outofmemory.cn/tougao/11422336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存