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

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

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

24520

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
您找到你想要的搜索结果了吗?
是的
没有找到

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

Bash 脚本中比较字符串需求相对普遍,可用于在继续执行脚本下一部分之前检查某些条件。 字符串可以是任何字符序列。...在本教程,我们将向您展示如何在Linux 系统上比较Bash 脚本字符串,我们将在一个简单 if/else Bash 脚本上下文中展示这一点,这样您就可以看到在开发脚本时测试这种情况是如何工作...在本教程,您将学习: 如何Bash 中比较字符串 比较字符串 if/else Bash 脚本示例 Bash 脚本:字符串比较示例 例1 在 Bash 脚本,您通常会将一个或两个字符串存储为变量...总结 在本教程,我们了解了如何Bash 脚本中比较字符串,尤其是在 Bash 脚本上下文中if/else。...当然,此功能可以扩展到更健壮脚本,这些脚本可以读取用户输入或使用 case 运算符等。这些都是在 Bash 中比较字符串所需所有比较方法。

3.8K00

Bash如何字符串删除固定前缀后缀

更多好文请关注↑ 问: 我想从字符串删除前缀/后缀。例如,给定: string="hello-world" prefix="hell" suffix="ld" 如何获得以下结果?...如果模式与 parameter 扩展后开始部分匹配,则扩展结果是 parameter 扩展后删除最短匹配模式(一个 # 情况)或最长匹配模式(## 情况)值 ${parameter...如果模式与 parameter 扩展后末尾部分匹配,则扩展结果是 parameter 扩展后删除最短匹配模式(一个 % 情况)或最长匹配模式(%% 情况)值。...https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion 相关阅读: 在bash:-(冒号破折号)用法...在Bash如何将字符串转换为小写 在shell编程$(cmd) 和 `cmd` 之间有什么区别 如何Bash变量删除空白字符 更多好文请关注↓

30710

DBeaver使用汇总

前言 公司使用PostgreSQL 数据库,可以使用 pgAdmin 或者 DBeaver 进行连接该数据库。个人更喜欢用 DBeaver,因为其界面更加美观,操作也相对简单。...DBeaver 是一个通用数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby...DBeaver 提供一个图形界面用来查看数据库结构、执行 SQL 查询脚本,浏览和导出数据,处理 BLOB/CLOB 数据,修改数据库结构等等。...双击单引号/双引号内侧可以直接选定被单引号/双引号包括起来内容。...导出DBeaver连接配置和脚本文件 DBeaver默认连接和脚本(Connections和Scripts)都保存在General这个project里.dbeaver-data-sources.xml

3K40

BashShell变量

4.2 查询数组变量 查询数组变量单个元素值可以使用索引查找(索引值是 0 开始),比如查找数组第 3 个元素值: echo ${array[2]} 查询整个数组变量可用 * 作为通配符作为索引值...如果设置了且非空,就用作格式化字符串,以显示 Bash 历史每条命令时间戳 HISTIGNORE 由冒号分隔模式列表,用来决定历史文件哪些命令会被忽略 HISTSIZE 最多在历史文件存多少条命令...,能够覆盖 LANG 变量 LC_COLLATE 设置对字符串排序时用排序规则 LC_CTYPE 决定如何解释出现在文件名扩展和模式匹配字符 LC_MESSAGES 在解释前面带有 $ 引号字符串时...,该环境变量决定了所采用语言环境设置 LC_NUMERIC 决定着格式化数字时采用语言环境设置 LINENO 当前执行脚本行号 LINES 定义了终端上可见行数 MACHTYPE 用「CPU-...当 * 用双引号括起时,即 " 6.4 $@ 当 @ 未用双引号括起时,即 @:等同于 当 @ 用双引号括起时,即 " 【注】* 和 @ 使用很容易混淆,为了更好地理解可以参见以下例子: 首先定义脚本文件

2.4K30

使用PostgreSQLDO块或存储过程实现数据库初始化脚本幂等性

今天,我们就以PostgreSQL数据库为例,介绍如何使用DO块或存储过程来实现脚本幂等性。 什么是幂等性? 在计算机科学,幂等性是一个重要概念。...这在很多情况下都是非常有用,比如在软件升级时,我们可能需要运行脚本来升级数据库,如果这个脚本是幂等,那么无论我们执行多少次,都不会对数据库产生负面影响。 如何实现幂等性?...这意味着你可以在多个查询或者会话调用同一个存储过程。而DO块代码在执行之后,就会被丢弃,不会被保存在数据库。 存储过程可以返回结果,这意味着你可以使用存储过程来查询数据,或者计算一些值。...结论 在编写数据库初始化脚本时,通过合理使用PostgreSQLDO块或存储过程,我们可以有效地实现脚本幂等性,这对于系统升级和数据库维护来说,是非常重要和有用。...希望这篇文章能够帮助到在使用PostgreSQL你,或者激发你对其他数据库类似功能探索。

57210

《Linux命令行与shell脚本编程大全》第十四章 处理用户输入

有时还会需要脚本能够与使用者交互。bash shell提供了一些不同方法来用户处获得数据, 包括命令行参数,命令行选项,以及直接键盘读取输入能力。...image.png 2.在脚本中使用getopt 可以在脚本中使用getopt来格式化脚本所携带任何命令行选项或者参数,用起来略繁琐。...14.5 将选项标准化 有一些选项是标准化了,约定俗成东西。自己写脚本可以支持这些选项。这样用户使用你脚本就不用查手册了。...为此提供了read命令 14.6.1 基本读取 read命令标准输入或另外一个文件描述符接收输入。收到输入后read将数据放进一个变量中去。...9 else  10         echo "Falied, Two inconsistent"  11 fi 14.6.4 文件读取 每次调用read命令,它都会文件读取一行文本。

1.7K50

Shell 编程语法基础

引号与双引号字符串 单引号字符串限制: 单引号任何字符都会原样输出,单引号字符串变量是无效; 单引号字串不能出现单独一个引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用...echo $greeting $greeting_1 Shell 数组 bash支持一维数组,不支持多维数组,并且没有限定数组大小。类似C语言,数组元素下标也是0开始。...后台运行最后一个进程ID号 $* 以一个单字符形式显示所有向脚本传递参数,” 12 … $n”形式输出所有参数 $@ 与相同,但是使用时加引号,并在引号返回每个参数。...如∗相同,但是使用时加引号,并在引号返回每个参数。如”@”用「”」括起来情况、以”1″”2″ … “$n” 形式输出所有参数。 $- 显示Shell使用的当前选项,与set命令功能相同。 $?...printf 使用引用文本或空格分隔参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串宽度、左右对齐方式等。

2.3K10

数据库同步 Elasticsearch 后数据不一致,怎么办?

在使用 Logstash pg 库中将一张表导入到 ES 时,发现 ES 数据量和 PG 库这张表数据量存在较大差距。如何快速比对哪些数据没有插入?...导入过程,Logstash 日志没有异常。PG 这张表有 7600W。 Q2:mq 异步双写数据库、es 方案如何保证数据库数据和 es 数据一致性?...2.1 方案探讨 要找出哪些数据没有插入到 Elasticsearch ,可以采用以下方法: 确保 Logstash 配置文件 input 插件 JDBC 驱动程序正确配置,以便 PostgreSQL...2.2 比较脚本实现 以下是一个简单 Shell 脚本示例,用于比较 Logstash 输出文件(JSON 格式)和 PostgreSQL 数据库数据。...引号 sed -i 's/"//g' logstash_ids.txt # 对 Logstash 和 PostgreSQL ID 文件进行排序 sort -n logstash_ids.txt

38810

如何使用cURL获得请求和响应时间?

cURL支持格式化输出请求详细信息(请参阅cURL手册页-w、–write out获取更多信息)。 如题,我们只关注如何知晓cURL请求时间细节, 下面时间以s为单位。 1....-o /dev/null 将请求输出重定向到/dev/null -s 通知cURL不显示进度条 "http://wordpress.com/" 是我们请求URL,请使用引号包围(尤其当你URL包含...time_appconnect:SSL/SSH等上层协议建立连接时间,比如 connect/handshake 时间 time_pretransfer:请求开始到响应开始传输时间 time_starttransfer.../.curl-format.txt\" -o /dev/null -s " 制作成Linux/Mac 独立脚本 脚本不需要单独包含格式化文本。...在可执行路径,创建名为curltime文件,粘贴下面内容: #!

3.4K10

bashcat

但是我不知道它是如何工作,有人能解释一下吗? 我主要指的是cat 输出到文件,>>追加到文件,<文件读取输入。 <<到底是做什么? 它有man page吗?...答: 源自man bash: Here Documents 这种重定向指示shell当前源读取输入,直到看到只包含word行(后面没有空格)。...如果word任何字符被加引号,则分隔符是word删除引号结果,并且here-document行不会展开。...如果重定向操作符是<<-,则从输入行和包含分隔符删除所有前导制表符。这使得shell脚本here-documents可以以一种自然方式缩进。...为了便于理解 word 不加引号和加了引号区别,我们可以做一个测试,运行截图如下: Here Documents 是一种强大工具,可以用来向脚本或命令提供复杂多行输入,例如 SQL 查询、配置文件内容等

22710

解释型语言-shell

bash完全兼容sh,也就是说,用sh写脚本可以不加修改bash执行 二、shell特点 简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂操作。...可移植性:使用POSIX所定义功能,可以做到脚本无须修改就可在不同系统上执行。 开发容易:可以在短时间内完成一个功能强大又妤用脚本。 三、常见错误 报错:-bash: ..../test.sh #执行脚本 实例二 脚本使用read命令stdin(标准输入)获取输入并赋值给PERSON变量,最后在stdout(标准输出)上输出 #!...$# 传递给脚本或函数参数个数。 $* 传递给脚本或函数所有参数。 $@ 传递给脚本或函数所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 $?...六、字符串&数组 单引号任何字符都会原样输出,单引号字符串变量是无效; 单引号字串不能出现单引号(对单引号使用转义符后也不行)。

1.5K31

shell学习教程(超详细完整)

位置参数变量: 这种变量主要是用来向脚本当中传递参数或数据,变量名不能自定义,变量作用是固定。 预定义变量: 是Bash已经定义好变量,变量名不能自定义,变量作用也是固定。...可是在Shell脚本,exit语句是用来退出当前脚本。也就是说,在Shell脚本,只要碰到了exit语句,后续程序就不再执行,而直接退出脚本。...exit语法如下: exit [返回值] 如果exit命令之后定义了返回值,那么这个脚本执行之后返回值就是我们自己定义返回值。可以通过查询$?这个变量,来查看返回值。...-f 脚本读取awk命令 -m 对val值设置内在限制 我们这里先来学习awk基本用法,也就是只看看格式化输出动作是干什么。...-f 脚本文件名: sed脚本读入sed操作。和awk命令-f非常类似。 -r: 在sed中支持扩展正则表达式。

5.6K20

Shell脚本攻略01-简介终端打印

运行脚本两种方式 将脚本作为bash命令行参数 将脚本作为命令行参数时运行方式如下(#号后面的文本是注释,不必输入到命令行): $ bash script.sh #假设脚本位于当前目录下 或者...$ bash /home/path/script.sh #使用script.sh完整路径 如果将脚本作为bash命令行参数来运行,那么就用不着脚本shebang了。...这组命令来自位于用户主目录脚本文件~/.bashrc(对于登录shell则是~/.bash_profile)。...在终端打印文本是绝大多数shell脚本和工具日常需要执行基本任务。...[root@entel1 ~]# echo "welcome to the blog of Bash" welcome to the blog of Bash 只需要使用带双引号文本,结合echo命令就可以将该文本在终端打印出来

2.5K20

一篇文章了解到入门shell

但是在写shell脚本时候,需要考虑兼容性, 最主流还是bash shell,所以,后文我们介绍shell脚本也是bash shell。 4、shell脚本 4.1、基础 #!...#上面已经提高过,单引号里面的变量是不会解析 ? 强大字符串处理 shell简单处理字符串,可以直接使用各种标记,只是比较难记忆,要用时候,可以查一下。...%-4.2f 指格式化为小数,其中.2指保留2位小数。 4.5.4、重定向 大多数 UNIX 系统命令终端接受输入并将所产生输出发送回到您终端。...有几个符号要非常注意,用也比较多,不要搞混了,搞混了,逻辑运算很容易出错 4.7.1、单小括号() 命令组 括号命令将会新开一个子shell顺序执行,所以括号变量不能够被脚本余下部分使用。...后台运行最后一个进程ID号 $@ 与$*相同,但是使用时加引号,并在引号返回每个参数。$? 显示最后命令退出状态。0表示没有错误,其他任何值表明有错误。

2.1K30

Linux命令(二)——shell编程

#,shell编程 简介 Unix/Linux上常见Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。...双引号可有可无,单引号主要用在原样输出。 printf:格式化输出语句。 printf 命令用于格式化输出, 是echo命令增强版。...单双引号区别跟PHP类似: * 双引号里可以有变量,单引号则原样输出; * 双引号里可以出现转义字符,单引号则原样输出; * 单引号字串不能出现单引号。 1....索引是0开始。 expr substr "$str" 1 6 分别输出: 3 3 4 10 i love 注意字符串变量需要加双引号。...cal 2020 >> cal.txt 获取当前正在执行脚本绝对路径 正确命令是: bash basepath=(cd dirname 0; pwd) 直接使用pwd或者dirname

3.8K20

深入探索地理空间查询如何优雅地在MySQL、PostgreSQL及Redis实现精准地理数据存储与检索技巧

接下来,我们将带领大家深入探讨如何在MySQL、PostgreSQL、Redis及MySQL 8这四种流行数据库实现地理空间查询优化和地理数据分析。...在这个全面的GIS技术指南中,我们将一起揭开数据背后世界,发现地理空间查询在大数据分析无限可能!我们将探讨如何有效存储地理空间数据,实现高效地理空间数据查询,以及如何进行精准空间数据分析。...PostgreSQL & PostGIS:专业地理空间数据处理 2.1 创建表格和数据插入 在 PostgreSQL ,我们将使用 PostGIS 扩展来存储和操作地理空间数据。...总结 在这一探索性知识之旅,我们深入挖掘了四种流行数据库——MySQL, PostgreSQL, Redis, 以及 MySQL 8——在地理空间查询领域应用与实现。...接下来,我们研究了 PostgreSQL 配合 PostGIS 扩展应用,这使得我们不仅能执行基础查询,还能进行更复杂空间分析和计算。

43610
领券