目录
一、获取脚本的命令行参数
二、获取脚本相较于当前执行命令路径的相对目录
三、获得当前脚本所在位置的绝对路径
一、获取脚本的命令行参数
- 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












网友评论