目录
一、获取脚本的命令行参数
二、获取脚本相较于当前执行命令路径的相对目录
三、获得当前脚本所在位置的绝对路径
一、获取脚本的命令行参数
- vi test.sh
在/home/test目录下新建test.sh文件 - 在test.sh文件中添加如下代码
#!/bin/bash
echo $0
echo $1
- 执行脚本
sh test.sh 1 - 执行结果
test.sh
1 - 结果分析
$0
为脚本名称,$1
为参数
二、获取脚本相较于当前执行命令路径的相对目录
- vi test.sh
在/home/test目录下新建test.sh文件 - 在test.sh文件中添加如下代码
#!/bin/bash
echo $(dirname $0)
- 执行脚本
在test.sh的脚本所在位置执行sh test.sh
sh test.sh - 执行结果
.
- 结果分析
当前执行命令的路径相较于执行脚本的相对路径是.
如果cd ..
,(即cd test.sh脚本的上一级,为test
),此时脚本相对于当前路径为test/test.sh
,执行sh test.sh
输入为test
三、获得当前脚本所在位置的绝对路径
- vi test.sh
在/home/test目录下新建test.sh文件 - 在test.sh文件中添加如下代码
#!/bin/bash
echo $(cd $(dirname $0); pwd)
- 执行脚本
在test.sh的脚本所在路径执行sh test.sh
sh test.sh - 执行结果
/home/test
- 结果分析
test.sh脚本的目录为/home/test/test.sh
,执行脚本结果为test.sh脚本的目录的绝对路径/home/test
【注】其中;
用于分隔单行中的多个语句,参考【1】
shell内置命令
- dirname
-
命令:
echo $(dirname /home/test/test.sh/)
结果:/home/test
-
命令:
echo $(dirname /home/test/test.sh/)
结果:/home/test
-
命令:
echo $(dirname /home/test/)
结果:/home
-
命令:
echo $(dirname /home/test)
结果:/home
- basename
网友评论