从某个路径中提取出文件名(带文件尾缀)
返回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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)