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

如何从Bash脚本本身中获得其所在的目录

问: 如何从Bash脚本本身中获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ....但是在以相对路径的方式去执行脚本时,获取的目录信息是相对路径,不能满足其他需要获取绝对路径的场景。 如果要获取绝对路径,可以使用如下方法: #!...$script_dir 其中第3行代码,无论从何处调用它,都将为你提供脚本的完整目录路径。...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录的绝对路径: #!.../(点-斜杠),以便在bash中运行它 shell脚本对编码和行尾符敏感吗

34920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在Linux 系统上比较Bash脚本中的字符串?

    在Bash 脚本中比较字符串的需求相对普遍,可用于在继续执行脚本的下一部分之前检查某些条件。 字符串可以是任何字符序列。...在本教程中,我们将向您展示如何在Linux 系统上比较Bash 脚本中的字符串,我们将在一个简单的 if/else Bash 脚本的上下文中展示这一点,这样您就可以看到在开发脚本时测试这种情况是如何工作的...在本教程中,您将学习: 如何在 Bash 中比较字符串 比较字符串的 if/else Bash 脚本示例 Bash 脚本:字符串比较示例 例1 在 Bash 脚本中,您通常会将一个或两个字符串存储为变量...例4 -n运算符还可用于测试字符串长度是否不为零。 #!...总结 在本教程中,我们了解了如何在 Bash 脚本中比较字符串,尤其是在 Bash 脚本的上下文中if/else。

    4K00

    Go 100 mistakes之如何正确设置枚举值中的零值

    << (10 * 1) ③ 在这一行,iota等于2,本行将会重复上一行的表达式,因此 MB 被设置成了 1 << (10 * 2) Go中Unknow 值的处理 既然我们已经理解了在Go中处理枚举值的原理...然而,在Request结构体中的Weekday字段值将会被设置成一个int类型的默认值:0值。因此,就像是在上次请求中的Monday。...那我们应该如何区分请求中是传递的Monday还是就没有传递Weekday字段呢?这个问题和我们定义Weekday枚举的方式有关。实际上,Unknown是枚举值的最后一个值。因此,它的值应该等于7....为了解决该问题,处理一个unknown的枚举值的最好的实践方法是将它设置成0(int类型的零值)。...根据经验,枚举的未知值应该设置为枚举类型的零值。这样,我们就可以区分出显示值和缺失值了。

    3.8K10

    从 SAR 报告中获取平均 CPU 利用率的 Bash 脚本

    大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周的性能数据。但是,你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周。...如果超过 28,那么日志文件将放在多个目录中,每月一个。 要将覆盖期延长至 28 天,请对 /etc/sysconfig/sysstat 文件做以下更改。...在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件的平均值。 这些脚本简单明了。出于测试目的,我们仅包括两个性能指标,即 CPU 和内存。...你可以修改脚本中的其他性能指标以满足你的需求。 从 SAR 报告中获取平均 CPU 利用率的 Bash 脚本 该 bash 脚本从每个数据文件中收集 CPU 平均值并将其显示在一个页面上。...2:从 SAR 报告中获取平均内存利用率的 Bash 脚本

    1.6K10

    在Bash中解析命令行参数的两种样例脚本

    /bin/bash POSITIONAL_ARGS=() #初始化一个空数组,用来存储位置参数 while [[ $# -gt 0 ]]; do #当命令行参数的数量大于0时,进入循环 case...$1 in -e|--extension) #如果参数是这个,脚本会将紧随其后的参数(文件扩展名)保存在变量 EXTENSION 中 EXTENSION="$2" shift...# 跳过参数 shift # 跳过后面的值 ;; -s|--searchpath) #如果参数是这个,脚本会将紧随其后的参数(搜索路径)保存在变量 SEARCHPATH...中 SEARCHPATH="$2" shift # 跳过参数 shift # 跳过后面的值 ;; --default) #如果参数是这个,脚本会将变量...#*=}" #使用 ${i#*=} 来提取等号 = 后面的值(即文件扩展名),并将其保存在变量 EXTENSION 中 shift # past argument=value

    16910

    用gson得JSON,数值变为double类型 ,去掉double值中的小数位(3.0改为3)

    项目中有个接口的数据是从缓存中读取再组成JSON 格式返出,原本缓存中数据是这样的: 用Gson 组成JSON 后,数值部分都成了Double类型,这不是我要的效果。...// 缓存中取 String json = _jedisClient.get("RICHER_TRAN_RECORDS_GIVE"+user.getId()); if (StringUtils.isNotBlank...于是我只好再次对数据循环处理: // 方式一 : gson转换默认是double类型 ,去掉70.0 这种数据的小数位 Set keySet = resultMap.keySet...format", format); } } } // 方式二 : gson转换默认是double类型 ,去掉70.0 这种数据的小数位...希望有更简单的办法处理这种情况,最好是组成JSON时也能不改变原数据类型,如果有网友知道,希望能留言告诉我,谢谢

    2.3K30

    Shell 脚本攻略之小试牛刀

    作者: Escape 链接:https://www.escapelife.site/posts/e8431cda.html Shell 简述简介 通篇系列博客中均采用Bash,它是目前大多数GUN/Linux...用户分类 $ 表示的是普通用户 # 表示管理员用户root shebang shell脚本通常是以shebang起始的文本文件,如#!.../bin/bash,运行/bin/bash来执行脚本 运行方式 将脚本作为bash的命令行参数 bash script.sh 授予脚本执行权限,变成为可执行文件 相对路径 chmod a+x script.sh...在 Bash 中,每一个变量的值都是字符串 无论你给变量赋值时有没有使用引号,值都会是字符串的形式存储的 环境变量就是用来被 shell 环境和操作系统环境用来存储一些特殊值的变量 查看环境变量 所有与终端相关...non-zero 则为真 [-n string] #string 的长度为非零 non-zero 则为真 [-z string] #string 的长度为零则为真 [sting1==string2

    73430

    每日一题:从链表中删去总和值为零的连续节点

    从链表中删去总和值为零的连续节点 难度中等 给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。...删除完毕后,请你返回最终结果链表的头节点。 你可以返回任何满足题目要求的答案。 (注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。)...,可以从每个结点出发,遍历它的后缀和,如果它的后缀和等于0了,说明当前遍历的起始结点到令后缀和等于0的这些结点是一组求和等于0的连续结点,应当删除掉,但是不要delete,因为经过测试如果delete掉头结点后...Leetcode会报错,猜测可能和 Leetcode 的测试用例的链表实现有关系,所以删除掉的方法就是cur->next = search->next,这里cur是起始结点的前一个结点,search是使前缀和等于...为了避免头结点删除后返回新的头结点的困难,同时可以和起始结点的前一个结点这一想法相配合,可以增加一个哨兵结点 newhead.

    1K30

    shell中的括号(小括号,中括号,大括号)

    括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。     ②命令替换。...((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。...②只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,输出结果全都自动转化成了十进制。...string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。      ...结构中的pattern支持通配符,*表示零个或多个任意字符,?表示零个或一个任意字符,[...]表示匹配中括号里面的字符,[!...]

    3.9K10

    Python脚本之根据excel统计表中字段值的缺失率实用案例

    有时候,我们需要去连接数据库,然后统计下目标库表字段的值有多少个空值,并且计算出它的缺失率: 缺失率 = (该字段NULL值+NA值+空字符串 的记录数)/该表总记录数 这时候如果表中有几个字段,并且总共统计的就几个表还可以用手动的方式...将需要统计的表名和字段以及类型放在excel里边; 2. 使用 pandas 读取excel的数据; 3. 连接数据库; 4. 将读取到excel里边的数据拼接如sql里边统计; 5....将计算结果写回到 excel 中。 根据思路我们接下来编写程序代码了。...一、excel 的格式 excel中的设置很重要,因为会影响到我们程序的读取设计: 二、程序的编写 2.1 导入相关的模块,并使用 pandas 读取 excel 里边的数据: import pymssql...,控制台输出结果: 代码目标csv文件,里边的数据结果即为刚才控制台显示的那些数据: 经过我们程序的处理计算,不管是成千上万张表也不怕了,我们就静静的等待运行结果即可 欧了,希望对你有帮助哦。

    2.7K20

    从链表中删去总和值为零的连续节点(哈希表)

    题目 给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。 删除完毕后,请你返回最终结果链表的头节点。...你可以返回任何满足题目要求的答案。 (注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。)...对于链表中的每个节点,节点的值:-1000 <= node.val <= 1000....哈希表 建立包含当前节点的前缀和sum为Key,当前节点指针为Value的哈希表 当sum在哈希表中存在时,两个sum之间的链表可以删除 先将中间的要删除段的哈希表清除,再断开链表 循环执行以上步骤 ?...; it = m.find(sum); if(it == m.end()) m[sum] = cur; else//找到了一样的值

    2.4K30

    shell中各种括号的作用()、(())、]、{}「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 一、小括号,圆括号() 1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。...((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为1,或者 是”假”,而一个非零值的表达式所返回的退出状态码将为0,或者是”true”。...二、中括号,方括号[] 1、单中括号 [] ①bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令。...④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。...string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。

    4K40

    shell中各种括号的作用(上)

    括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 2.命令替换。...((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为1,或者 是”假”,而一个非零值的表达式所返回的退出状态码将为0,或者是”true”。...2/只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,输出结果全都自动转化成了十进制。...二.中括号,方括号[] 单中括号 [] 1.bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令。...[[ ]] 中匹配字符串或通配符,不需要引号。 3.使用[[ … ]]条件判断结构,而不是[ … ],能够防止脚本中的许多逻辑错误。

    90820

    详解 & 0xff 的作用

    大家好,又见面了,我是你们的朋友全栈君。...保证补码的一致性 我们只关心二进制的机器数而不关注十进制的值,那么byte &0xff只是对其最低8位的复制,通常配合逻辑或 ‘’|’’使用,达到字节的拼接,但不保证其十进制真值不变 public static...&上0xff 本例子中,将byte转为int 高24位必将补1,此时补码显然发生变化,在与上0xff,将高24重新置0, 这样能保证补码的一致性,当然由于符号位发生变化,表示的十进制数就会变了 1111...一致,但是显然符号位变化了,表示的十进制数发生变化,变为129 结论: java中基本类型从小扩展到大的数据类型时候,正数因为符号位是0,无论如何都是补零扩展,但是负数补零扩展和补符号位扩展完全不同,...负数补符号位扩展,保证十进制数不变 例如 byte>>>int -127自动按照补符号位扩展,在高24位补符号位1,表示的十进制数不变 补零扩展,保证补码的一致性,但是表示的十进制发生变化 例如,本例中

    1.1K10

    python全栈开发《05.环境搭建与脚本结构之python中的关键字》

    1.什么是关键字 在中国古代,像皇帝,还有官员的官职,他们的官称不同,所执行的工作内容也并不相同。 那么python里面的关键字就像朝廷里面官员的头衔一样被python所内定。并且起到各自的功能。...朝廷的官员是为了国家的运转而存在的。 关键字是python内部自带的用于处理业务逻辑的特殊单词。 关键字是python内部的特殊字符。在古代,老百姓是绝对不能自称朝廷官员的,更不能自称皇帝。...如果自称了某个职级的官员,可能会被问罪。如果自称皇帝,那肯定更是死刑了。 对于python中的关键字,也非常相似。变量名绝不能使用关键字来命名的。...它们的存在的意义是完全不同的。 1)关键字的分类 其实,对于python中的关键字并没有直接的分类。但是我将它进行了一个分类。...那么,弱关键字,还是可以把它定义成变量名的,但是,会影响这个关键字的功能。 3.python中常见的关键字 强类型关键字 弱类型关键字一般都是python中的内置函数。比如print 函数。

    12810

    码农们的「血与泪」:新零售「全渠道中台」的前世今身

    前事不忘,后事之师,本文就将以技术更迭为主线,通过传统零售行业的码农们一次次血与泪的教训,告诉你到底什么才是符合中国国情的「全渠道中台」?...再加DB,DB加完后发觉第三天量更大了,再加Web,Web加完后Tomcat中间群被压跨了,再回到以上第3点 多少企业经历了上述的过程?我告诉大家一个值,超过90%的企业都有过上述的大血坑。...”并结合了中国自身特色,继而打造出来了一个新的产物,这个新的产物就是“全渠道零售中台”。...我们不要求一个全渠道的零售中台内必须包括全渠道营销中心,必竟术业有专精; 全渠道的促销中心,促销和营销很多人会搞起来,促销中心和营销中心在功能上是有相近的,有人把促销归为营销,也有人把促销和营销进行分离...所以,月球的背面长的是个什么样的呢?即什么是真正的全渠道零售中台? 全渠道零售中台的“真容” 我用下面的这张图来解析全渠道零售中台的技术的面长成个什么样! ?

    98920
    领券