linux 下 `dirname $0`

本文介绍了Shell脚本中如何使用$0、dirname$0和cd`dirname$0`等命令来获取脚本的路径信息,这对于提高脚本的可移植性和定位与脚本一起部署的文件位置非常关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 倒引号`、双引号"" 、单引号’’

`,被倒引号括起来的内容, 表示里面执行的是命令。比如 `dirname $0`, 就表示需要执行dirname $0这个命令。

“” ,被双引号括起来的内容, 里面出现$ (美元号)表示取变量名, `(倒引号)表示执行命令,\(转义号)表示转义,其余的才表示字符串。

‘’, 被单引号括起来的内容,里面所有的都表示串, 包括上面所说的 三个特殊字符。

在命令行状态下,单纯执行cd `dirname $0` 是毫无意义的,因为它返回当前路径“.”。cd `dirname $0`命令写在脚本文件里才有作用,它返回这个脚本文件所在的路径,并可以根据这个路径定位所要运行程序的相对位置(绝对位置除外)。

2. 实例

  • $0:当前Shell程序的文件名
  • dirname $0,获取当前Shell程序的路径
  • cd `dirname $0`,进入当前Shell程序的目录

在/home/admin/test/下新建test.sh内容如下:

#!/bin/bash

basedir=$(
          cd $(dirname $0)
          pwd
)

echo $basedir

然后返回到/home/admin/执行

cd /home/admin/test/
chmod +x test.sh

./test.sh

运行结果:

/home/admin/test

这样就可以知道一些与脚本一起部署的文件位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚本的可移植性就提高了,如果是部署脚本,扔到任何一台服务器,都可以执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值