一点一滴学shell

1. 获取shell脚本的名称

${BASH_SOURCE-$0}

2. 获取shell脚本的路径

dirname "${BASH_SOURCE-$0}"

这个路径不一定是脚本的真实路径,举例来说,假设这个命令在文件/home/hubavyn/test.sh中。

执行如下操作:

cd /home/hubavyn/a (假设a是一个文件夹)

sh ../test.sh (这个时候执行上述dirname命令得到的结果只是..)

而如果要获得脚本的真实路径(/home/hubavyn),则要执行如下操作:

path=`dirname ""${BASH_SOURCE-$0}`

real_path=`cd "path">/dev/null;pwd`

这个时候得到的real_path就是/home/hubavyn。这样的好处就是脚本可以灵活部署,可以很方便地获取和脚本一起部署的其他文件的位置。

3. 在一个脚本里加上. <另一个脚本的名字>

加上. 表示另外一个脚本相当于在当前脚本中执行,如在另一个脚本中的变量赋值等操作同样适用于当前脚本。

时间: 2024-08-09 14:09:00

一点一滴学shell的相关文章

一点一滴学shell-Shell expr的用法 (转)

原文链接:http://desheng666.blog.163.com/blog/static/4908408220121643953425/ expr命令一般用于整数值,但也可用于字符串.一般格式为:expr argument operator argumentexpr也是一个手工命令行计数器.$expr 10 + 1020$expr 1500 + 9002500$expr 30 / 310$expr 30 / 3 / 25(注意运算符左右都有空格 ,如果没有空格表示是字符串连接)使用乘号时,

Linux就该这么学--Shell脚本基本应用

1.接收用户的参数: Shell脚本为了能够让用户更灵活的完成工作需求,可以在执行命令时传递参数:(命令名 参数1 参数2...) Shell预定义变量: $0 当前执行Shell脚本的程序名 $1-9,${10},${11}... $# 一共有多少个参数 $* 所有位置变量的值 $? 判断上一条命令是否执行成功,0为成功,非0为失败. eg. 创建并编辑Demo.sh: vim Demo.sh 编辑内容如下: #!/bin/bash echo "当前脚本名称为$0" echo &qu

学 shell (1/5)

假设这是某脚本 x.sh 的内容,使用 sh x.sh arg1 来执行该脚本 #!/bin/bashcd `dirname $0`/..source scripts/status.shstart [email protected] 第一行 #! /bin/bash 说明使用 bash 的位置 第二行 ``内的代码会优先被执行,$0 表示被执行脚本,dirname 返回它所在的文件路径,类似 pwd source scripts/status.sh 表示执行x.sh start [email p

从零开始学Shell(二)

$1,$2....${10},${11},[root@localhost cee]# cat p.sh #!/bin/bash#file_name:p.shecho $1 $2[root@localhost cee]# sh p.sh 123 william123 william[root@localhost cee]# sh p.sh 123 william 456123 william[root@localhost cee]# [root@localhost cee]# echo \${1.

shell编程基础一(多种方法求值1+2+..+100)

#SHELL编程基础一(多种方法求值1+2+..+100)##为什么要学好shell shell脚本语言是实现linux系统管理及自动化运维所必备的重要工具,linux系统的底层及基础应用软件的核心大都涉及shell脚本的内容. 每一个合格的linux系统管理员或运维工程师,都需要能够熟练地编写shell脚本语言,并能够阅读系统及各类软件附带的shell脚本内容. 只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的工作,从而为个人的职场发展奠定较好的基础.# 本文的宗旨是熟

Linux shell编写系统服务脚本

1 事先准备工作:源码安装apache .安装目录为/usr/local/httpd 2 3 任务需求: 4 1.可通过 service httpd start|stop|status|restart 命令对服务进行控制 5 6 2.httpd服务可开机自启动 7 8 思路: 9 1.start.stop操作可直接调用源码安装的httpd的控制程序apachectl 10 2.在启动服务时,建立httpd.lock文件:停止服务时删除 11 3.status操作检测httpd.lock文件是否存

Shell脚本查看linux系统性能瓶颈(转)

linux服务器敲命令反应慢,网站访问慢,到底什么情况?根据本人的经验,主要原因可能是系统资源到达瓶颈,已经无法处理更多请求.在有监控系统情况下,可以直接通过WEB页面可视化看出是CPU瓶颈?硬盘瓶颈?还是网络瓶颈?如果公司服务器较少或者云服务器,就有可能没有一套监控系统,这时就要登陆到服务器,一条一条的敲命令,查找分析性能瓶颈.命令这么多,咋记得住啊!就算记得住,输入也费劲,于是就有了这个脚本,为了以后自己使用,另外也想分享给博友,学shell朋友能从中得到一丢丢启发.写的比较仓促,内容有点粗

Shell脚本查看linux系统性能瓶颈

linux服务器敲命令反应慢,网站访问慢,到底什么情况?根据本人的经验,主要原因可能是系统资源到达瓶颈,已经无法处理更多请求.在有监控系统情况下,可以直接通过WEB页面可视化看出是CPU瓶颈?硬盘瓶颈?还是网络瓶颈?如果公司服务器较少或者云服务器,就有可能没有一套监控系统,这时就要登陆到服务器,一条一条的敲命令,查找分析性能瓶颈.命令这么多,咋记得住啊!就算记得住,输入也费劲,于是就有了这个脚本,为了以后自己使用,另外也想分享给博友,学shell朋友能从中得到一丢丢启发.写的比较仓促,内容有点粗

shell编程--统计代码行数

引:之前都太懒,没有及时把学到的知识总结到博客里.最近在学shell编程,正好作为养成写博客习惯的开端.平时我们都会遇到一个问题,写完一个项目后,想统计一下总的代码量,当代码文件很多时,一个个点开代码文件,然后把代码行数加起来是一件很费神的事.shell可以用短短几行代码就搞定这个问题. 一 shell源码(code_linage.sh): 1 #!/bin/bash 2 3 if [ $# -eq 1 ] && [ -d $1 ] 4 then 5 find $1 -type f -na