首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

确定执行BASH脚本的路径

在Linux系统中,执行BASH脚本时,系统会根据当前的工作目录(working directory)来寻找脚本文件。要确定执行BASH脚本的路径,可以使用以下方法:

  1. 使用pwd命令查看当前工作目录。
  2. 在脚本文件中使用#!/bin/bash指定解释器,并在脚本文件的第一行添加#!/bin/bash
  3. 使用cd命令切换到脚本文件所在的目录。
  4. 使用./脚本名执行脚本。

例如,如果脚本文件名为example.sh,则可以在终端中输入以下命令来执行脚本:

代码语言:txt
复制
cd /path/to/script
./example.sh

其中/path/to/script是脚本文件所在的目录路径。

需要注意的是,在执行脚本时需要确保当前用户有执行脚本的权限。如果没有权限,可以使用chmod命令来修改脚本文件的权限。例如,可以使用以下命令将脚本文件的权限修改为可执行:

代码语言:txt
复制
chmod +x example.sh

此外,在编写BASH脚本时,还可以使用$0变量来获取脚本的完整路径。例如,可以使用以下命令输出脚本的完整路径:

代码语言:txt
复制
echo $0

这将输出脚本的完整路径,包括脚本名和所在目录的路径。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SHELL(bash)脚本编程六:执行流程

大括号扩展、单词分割和路径扩展不会发生。 执行 不同类型命令,bash执行方式有所差异。...简单命令 无论是什么类型命令,最终都将归结到简单命令执行。 一条简单命令执行过程如下: 命令搜索 1、如果命令名中包含字符/(目录分隔符),则直接执行路径指定文件。...4、如果没有对应内置命令,则搜索hash缓存中记录对象,如果有该命令缓存,则直接执行该绝对路径对应文件。...,execve()失败,此时,bash会判断该文件,如果该文件有可执行权限并且不是一个目录,则认为该文件是一个脚本,于是调用默认解释器解释执行该文件内容。...7、执行完毕后,bash收集命令返回值。 这些,就是bash执行命令整个流程。

1.7K40
  • bash shell:获取当前脚本绝对路径(pwdreadlink)

    https://blog.csdn.net/10km/article/details/51906821 有时候,我们需要知道当前执行输出shell脚本所在绝对路径,可以用dirname...下面是dirname命令行说明: ? 从上面的描述可知道,直接从dirname返回未必是绝对路径,取决于提供给dirname参数是否是绝对路径。...所以下面这样代码中SHELL_FOLDER中不一定是绝对路径 SHELL_FOLDER=$(dirname "$0") 需要用cd和pwd命令配合获取脚本所在绝对路径,正确写法是这样, SHELL_FOLDER...=$(cd "$(dirname "$0")";pwd) 如果你觉得上面的写法比较麻烦,还有一个方式获取脚本绝对路径,就是借助readlink命令,下面是readlink命令行说明: ?...所以用readlink命令我们可以直接获取$0参数路径文件名,然后再用dirname获取其所在绝对路径: SHELL_FOLDER=$(dirname $(readlink -f "$0")) 参考

    8.7K30

    在当前bash(sh)中执行脚本和注册函数

    在研究《管理Python虚拟环境脚本》时,我们使用了source指令而没有使用sh或者bash执行脚本,就是因为source指令可以让脚本在当前bash(sh)中执行;而sh或者bash则会新启动一个...bash执行。...source source test.sh $$ processInfo: 40883 bash 可以见得没有启动新bash程序。 source还可以让自动注册脚本函数。...所以如果我们希望脚本对当前bash有所影响,就要使用source去执行脚本;如果不希望影响当前bash,则可以使用bash或者sh去执行。 需要注意是,bash并不等价于sh。...主要目标是与POSIX标准保持一致,同时兼顾对sh兼容,是各种Linux发行版标准配置Shell。比如上面test.sh使用bash可以正确执行,而sh执行就会报错。

    17210

    处理Apache日志Bash脚本

    以往,我用是AWStats日志分析软件。它可以生成很详细报表,但是不太容易定制,得不到某些想要信息。所以,我就决定自己写一个Bash脚本,统计服务器日志,顺便温习一下脚本知识。...下面就是我日志分析脚本,虽然它还不是通用,但是我相信里面用到命令,足以满足一般日志分析需求,同时也是很好学习Bash实例。如果下面的每一个命令你都知道,我觉得可以堪称熟练使用Bash了。...二、为什么要用Bash 很多计算机语言,都可以用来完成这个任务。但是,如果只是简单日志分析,我觉得Bash脚本是最合适工具。...主要原因有两个:一是"开发快",Bash脚本是各种Linux命令组合,只要知道这些命令怎么用,就可以写脚本,基本上不用学习新语法,而且它不用编译,直接运行,可以边写边试,对开发非常友好。...编写时候,我假定这个脚本和log.awk脚本与日志文件在同一个目录中,而且这两个脚本都具有执行权限。 年度排名处理与此类似,就不再赘述了。

    1.2K50

    如何获取当前正在执行脚本绝对路径

    如图所示,dirname $0是不能在命令行下单独执行。 举个例子,我用mkdir -p创建一系列文件夹 mkdir -p 1/2/3/4/5/6 然后写一个小脚本 test.sh #!.../bin/bash cd `dirname $0` echo `pwd` 切到/home/zwang/1/2/3/4路径下,运行test.sh后就位于脚本所在目录并输出路径了。...现在我们回头来把这个脚本拆开来理解一下 `` 表示执行引号内命令 $0 表示当前执行脚本文件名 dirname $0 表示获取当前执行脚本路径 这样一来就能明白dirname $0是如何获取当前执行脚本路径了吧.../bin/bash basepath=$(cd `dirname $0`; pwd) echo $basepath 此时输出结果是脚本所在路径,但如果我换一种命令替换方式 #!.../bin/bash basepath=`cd `dirname $0`; pwd` echo $basepath 出现了报错,这就需要按我上面提到在多层次复合替换中,``必须要额外跳脱处理(反斜线

    1.8K20

    更新cowsay和fortunebash脚本

    上次更新fortune自定义发现召唤cowsaybash shell脚本有小概率bug,就是随机脚本可能超出cows列出图形数量,这里修补下。.../bin/bash #将变量声明为整数和数组 declare -i i=1 declare -i n declare -a animals # cow文件数 cowLine=$(ls -1 /usr.../share/cowsay/cows | wc -l) # 获取随机数(必须小于cow文件数,否则再次执行) function nlesscowLine() { n=$(($(($RANDOM...nlesscowLine产生随机数n=50,50>49,于是再次执行nlesscowLine 49,产生新随机数n=40,40 < 49,这个序号在数组中对应cowsay图形是suse(一个老牌linux...PS: 每天都在用Linux办公,每天开启bash无数次,虽然这个概率不大,可都一年多了,也可见我粗心大意...

    64420

    编写快速安全Bash脚本建议

    我们会包含: 一些bash基础知识(“你怎么写一个for循环”) 杂项事宜(“总是引用你bash变量”) bash脚本安全提示(“总是使用set -u”) 如果你编写shell脚本,并且你没有阅读这篇文章中其他任何内容...,你应该知道有一个shell脚本校验工具(linter),叫做 shellcheck 。...使用它来使您shell脚本更好! 我们会像讨论编程语言一样讨论bash,因为,怎么说呢,它就是。 这篇文章目标不是bash编程详解。我不会在bash中做复杂编程,也真的不计划学习如何去做。...但是,经过今天思考之后,我认为明确整理下bash编程语言一些基础知识是有用bash编程语言与我使用过其他编程语言有着很大不同。...看看这个看似合理 shell 脚本: X="i am awesome" Y="i are awesome" if [ $X = $Y ]; then echo awesome fi 如果你尝试运行这个脚本

    1.8K80

    PHP脚本执行

    PHP脚本执行: PHP脚本执行还是会经过编译环节, 只不过它们一般会在运行时候实时进行编译 1.启动PHP及Zend引擎, 加载注册扩展模块 2.读取脚本文件,Zend引擎对脚本文件进行词法分析...3.编译成opcode执行 4.如果安装opcode缓存扩展(如APC, xcache, eAccelerator等),可能直接从缓存中读取opcode执行 脚本编译执行: 1.读取脚本,通过lex按照词法规则切分一个一个标记...3.Zend引擎将代码编译为opcode 4.PHP是构建在Zend虚拟机(Zend VM)之上。PHPopcode就是Zend虚拟机中指令。...编程语言编译器(compiler)或解释器(interpreter)一般包括两大部分: 1.读取源程序,并处理语言结构。 2.处理语言结构并生成目标程序。...Yacc(Yet Another Compiler-Compiler) 1.安装lex,apt-get install flex 2.lex词法规则文件 定义段 %% 规则段 %% 用户代码段

    1.7K30

    bash运行脚本几种方式 转

    bash shell 脚本执行方法有多种,本文作一个总结,供大家学习参考。 假设我们编写好shell脚本文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。.../,bash可能会响应找到不到hello.sh错误信息。因为目前工作目录(/data/shell)可能不在执行程序默认搜索路径之内,也就是说,不在环境变量PASH内容之中。...方法二:以绝对路径方式去执行bash shell脚本: /data/shell/hello.sh 方法三:直接使用bash 或sh 来执行bash shell脚本: cd /data/shell bash...因为方法三是将hello.sh作为参数传给sh(bash)命令来执行。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。.../hello.sh -bash: ./ hello.sh: 权限不够 2.以绝对路径方式执行: 代码如下: [root@localhost ~]# /root/Desktop/hello.sh -bash

    2.3K10

    详解bash脚本调试机制

    以调试模式运行脚本 通过bash -x 方式可以在调试模式下运行整个脚本, bash会在在运行前打印出了每一行命令, 而且每行前面用+号表明命令嵌套层数. > bash -x debug.sh...如果脚本比较复杂, 我们可以通过使用环境变量PS4配合调试用内置变量用于输出更加详细信息: > export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]...我们也可以使用trapDEBUG关键字在解释执行每一行脚本之前执行指定命令或函数: trap 'echo "VARIABLE-TRACE> $variable = \"$variable\""' DEBUG...关键字用于在解释出现错误时执行预设操作, 例如打印出错命令: trap 'echo $BASH_COMMAND' ERR 但鉴于使用trap进行调试执行效率过低, 建议在较为复杂脚本中直接使用调试选项或者使用...* > ll * -rw-rw-r-- 1 remilia remilia 0 Mar 1 20:09 '*' 到此这篇关于详解bash脚本调试机制文章就介绍到这了,更多相关bash 脚本调试

    1.4K31

    基于Bash Shell一个审计脚本

    主要内容就是通过read -p 获取用户输入内容,然后进行判断 这里需要用户自行输入要扫描网站路径,字典路径可有可无,留空,就会执行已经写好东西,自定义的话,就需要用户自己输入字典路径了。。...二、网站日志分析 这个基本没变,懒得改了,详情可参考3年前写那篇文章。 如何编写自己Web日志分析脚本? ? 运行结果如下: ? ?...毕竟都2020年了,不会徒手写shell脚本攻城狮不是好运维~ 写个整体代码框架示例,可能看起来能更清楚些... #!...五、题外话 在kali中,可以将常用工具集中起来,配合bash shellfunction函数,来实现自动化执行,就不需要背命令了,无论什么工具,输个IP地址或者域名就可以直接使用了,只要你提前在function...,如果两者相当,则执行接下来操作。

    1.1K30

    编写可靠 bash 脚本一些技巧

    作者:astarsun,腾讯搜索工程师 写过很多 bash 脚本的人都知道,bash 坑不是一般多。其实 bash 本身并不是一个很严谨语言,但是很多时候也不得不用。...以下总结了一些编写可靠 bash 脚本小 tips。... pipefail 下面说明每个参数作用,以及一些例外处理方式 : -x :在执行每一个命令之前把经过变量展开之后命令打印出来。...bash 跟其它脚本语言最大不同点之一,应该就是遇到异常时继续运行下一条命令。这在很多时候会遇到意想不到问题。加上 -e ,会让 bash 在遇到一个命令失败时,立即退出。...用法 1:假设你入口脚本是 myscript.sh,可以新建一个脚本,通过 flock 来运行它: # flock --wait 超时时间   -e 锁文件   -c "要执行命令" # 例如: flock

    1.2K21
    领券