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

如何判断当前的bash脚本是否从call脚本调用

要判断当前的bash脚本是否从call脚本调用,可以通过检查环境变量来实现。在bash脚本中,可以使用特殊变量$0来获取当前脚本的名称。而当脚本被其他脚本调用时,$0的值会变成调用脚本的名称。

因此,可以通过比较$0和call脚本的名称来判断当前脚本是否从call脚本调用。以下是一个示例代码:

代码语言:txt
复制
#!/bin/bash

# 定义call脚本的名称
call_script="call.sh"

# 获取当前脚本的名称
current_script=$(basename "$0")

# 判断当前脚本是否从call脚本调用
if [ "$current_script" = "$call_script" ]; then
    echo "当前脚本是从call脚本调用的"
else
    echo "当前脚本不是从call脚本调用的"
fi

在上述代码中,我们首先定义了call脚本的名称为"call.sh",然后使用basename命令获取当前脚本的名称并赋值给变量current_script。最后,通过比较current_script和call_script的值来判断当前脚本是否从call脚本调用。

如果当前脚本是从call脚本调用的,输出"当前脚本是从call脚本调用的";否则,输出"当前脚本不是从call脚本调用的"。

关于腾讯云相关产品和产品介绍链接地址,可以根据具体的需求和场景选择适合的产品。腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储、人工智能等。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多信息。

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

相关·内容

判断是否支持HeartbeatNSE脚本

服务端支持heartbeat是存在heartbleed漏洞必要条件,如果判断出某SSL端口不支持heartbeat,那基本上就可以排除风险了。...在SSL握手阶段,如果Client Hello里声明了客户端支持heartbeat,那么服务端会在Server Hello中声明自己是否也支持heartbeat。 ?...在ssl-enum-ciphers.nse基础上,改了一个nse脚本(http://pan.baidu.com/s/1pJ37kF5),来根据上述特征判断SSL是否支持Heartbeat,该脚本在nmap...PoC一样了…… PS(下面的说法没有经过严格验证): 1.现在那个pythonPoC貌似在处理有些服务器发来Server Hello请求时会出错,服务端明明发回了Server Hello,但因为格式不兼容这个脚本而被忽略...所以用那个PoC检测出有问题一定是有问题,但检测没问题不一定没问题。 2.这个脚本恰恰相反。 3.貌似无论是客户端还是服务端,微软产品都不支持heartbeat,除非特别引入了OpenSSL

1.2K70

如何使用Shell脚本判断HDFS文件目录是否存在

---- 1 文档编写目的 本文主要讲述如何使用Shell脚本判断HDFS文件或目录是否存在,算是一个小技巧吧,这几天做PoC时候感觉还挺有用。...Shell脚本测试 3.1 测试路径是否存在 3.2 测试目录是否存在 3.3 测试文件是否存在 4....总结 2 测试原理 通过hadoop fs -test来判断文件或者目录是否存在,一次只能传递一个测试参数。...比如判断HDFS上某个文件目录是否存在,可以执行如下命令: hadoopfs -test -d $path #判断目录是否存在 hadoopfs -test -e $path #判断路径(文件或者目录...这个特殊变量获取返回值; 3、-s和-z命令我测试过,但觉得不怎么常用,所以没在文章中讲述,有兴趣可以自己测一下,比较简单,更换一下脚本参数即可; 4、判断HDFS文件目录是否存在后,可以执行比如创建、

5.6K20
  • 如何Bash脚本本身中获得其所在目录

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

    33720

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

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

    8.7K30

    JAVA001-java  调用bash shell脚本阻塞问题解决

    背景 使用java实现web端,web端相应用户界面操作,使用java调用bash实现shell脚本进行实际操作,操作完成返回执行结果给web 界面显示。 现象: Java 进程阻塞。...使用ps命令可以看到被调用shell 执行进程状态为S !...Java程序在调用Runtime.getRuntime().exec(jyName)之后,linux 会创建一个进程用于执行这个程序,该进程与jvm之间使用三个管道进行链接 标准输入、标准输出、标准出错...我们java 程序也就阻塞在了 process.waitFor(); 解决办法 所调用程序中不要有太多输出到标准出错 、标准输出中。...Jvm及我们java程序中,对该子进程标准输出、标准出错进行读取,从而避免缓存区满。

    1.4K20

    Android如何判断当前点击位置是否在圆内部

    我们都知道,一个圆形ImageView控件(本项目中使用圆形控件是github上),其实所占区域还是正方形区域,只是显示内容为圆形,当我们给ImageView设置触摸事件时,没有显示区域也会相应点击事件...,而我们可以通过计算当前点击位置来判断ImageView是否相应触摸事件。...要实现这个效果并不难,首先,先计算出圆中心点坐标(x1,y1),注意,x1,y1是相对于屏幕坐标,不是相对于布局坐标; 然后获取当前按下坐标(x2,y2),只需要计算出当前按下坐标(x2...,y2)与圆心(x1,y1)距离d长度,然后与圆半径r相比较,如果d r则当前按下点在圆之外,如果d<r,则当前按下点在圆之内, 如下图所示: ?...这样注意一下,以上都应在MotionEvent.ACTION_DOWN里面计算,当距离d大于半径r时,return false,则当前控件不消费事件, 代码如下: public class MainActivity

    2.2K20

    「实用推荐」如何优雅判断元素是否进入当前视区

    背景 在上篇文章:记一次 「 无限列表 」滚动优化 中, 我介绍了「 如何优化一个无限滚动列表 」。 用到了懒加载方案, 一个关键点是:需要判断元素是否当前视区。 我们今天就看看这个问题。...---- 今天主要内容包括: 使用元素位置判断元素是否当前视区 使用 Intersection Observer 判断元素是否当前视区 实例:懒加载 实例:无限滚动 实用 npm 包推荐 正文...使用元素位置判断元素是否当前视区 这种方法实现起来比较简单, 我们一步一步来。 首先:编写一个 util 函数 isVisible,它将仅接收一个参数,即 element。...使用 Intersection Observer 判断元素是否当前视区 Intersection Observer 是一种更高效方式。 为什么这么说呢?...因为回调函数被调用时候那些数据——严格来说已经过期了。

    1.4K20

    如何利用Bash脚本监控Linux内存使用情况

    如果你只有很少系统并且想要监视它们,那么编写一个小 shell 脚本可以使你任务变得非常简单。 在本教程中,我们添加了两个 shell 脚本来监视 Linux 系统上内存利用率。...方法-1:用 Linux Bash 脚本监视内存利用率并发送电子邮件 如果只想在系统达到给定阈值时通过邮件获取当前内存利用率百分比,请使用以下脚本。 这是个非常简单直接单行脚本。...* 如何使用 shell 脚本自动执行日常活动? 方法-2:用 Linux Bash 脚本监视内存利用率并发送电子邮件 如果要在邮件警报中获取有关内存利用率更多信息。...使用以下脚本,其中包括基于 top 命令和 ps 命令最高内存利用率和进程详细信息。 这将立即让你了解系统运行情况。 当你系统达到内存利用率 “80%” 时,它将触发一封电子邮件。...# crontab -e */5 * * * * /bin/bash /opt/scripts/memory-alert.sh 注意:由于脚本计划每 5 分钟运行一次,因此你将在最多 5 分钟后收到电子邮件提醒

    2.1K10

    如何写出安全、基本功能完善Bash脚本

    Fail fast set -Eeuo pipefail set命令可以更改脚本执行选项。例如,通常Bash不关心某个命令是否失败,返回非零退出状态代码。它只是快速地跳到下一个。...通常,我们脚本在相对于脚本位置路径上运行,复制文件并执行命令,假设脚本目录也是一个工作目录。是的,只要我们目录执行脚本。...因此,如果脚本同一目录中读取某个文件或执行另一个程序,请按如下方式调用: cat "$script_dir/my_file" 同时,脚本不会更改工作目录位置。...如果脚本其他目录执行,并且用户提供了指向某个文件相对路径,我们仍然可以读取它。...你可以在这里尝试删除脚本创建所有临时文件。 请记住,cleanup()不仅可以在最后调用,在任何时候都可以。

    55830

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

    大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周性能数据。但是,你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周。...在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件平均值。 这些脚本简单明了。出于测试目的,我们仅包括两个性能指标,即 CPU 和内存。...你可以修改脚本其他性能指标以满足你需求。 SAR 报告中获取平均 CPU 利用率 Bash 脚本bash 脚本每个数据文件中收集 CPU 平均值并将其显示在一个页面上。...done echo "+----------------------------------------------------------------------------------+" 运行脚本后...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.9K00

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

    dirname $0 最近在看脚本时候经常发现有“dirname $0”这样一种表述,很是不解。.../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

    msvc:BAT脚本判断是否设置MSVC编译环境变量(执行vcvarsall.bat)

    所以写BAT脚本如果不判断是否设置了MSVC环境变量,而每次编译时候都执行vcvarsall.bat,在同一个CMD下执行几次就会出错了,只能关闭当前CMD,再重开一个。...这是个小毛病,但有时也蛮烦人,所以就想有没有办法避免这个,能不能在脚本判断MSVC环境变量是否已经设置。...通过阅读vcvarsall.bat源码,找到了解决方案:vcvarsall.bat执行成功后会设置一个环境变量VisualStudioVersion来保存当前MSVC编译器版本号。 ?...所以只要判断这个变量是否定义就可以确定是否已经正确设置MSVC环境变量: 以下代码片段就是应用示例: if exist build rmdir project.vs2015 /s/q mkdir project.vs2015...cd project.vs2015 rem 通过判断 VisualStudioVersion 是否定义确定是否有必要执行vcvarsall.bat rem 避免重复执行vcvarsall.bat造成环境变量存储空间溢出

    1.6K20

    如何0到1设计实现一门自己脚本语言

    swtich(c1) { case 'a': return checkReserved("nd", TOKEN_AND); // checkReserved 判断剩下字符串是否相同,同则返回 TOKEN_AND...1 后值放入栈顶 0026 | OP_CALL 1 // 再次发起调用,即再压入一个 CallFrame 0028 | OP_ADD // 将当前参数与调用产生值相加...OP_SUPER_INVOKE 与前文 OP_INVOKE 主体逻辑相似,区别是调用主体当前类方法变成父类方法。 ......理论上,只要虚拟机能够将所有需要释放对象归置到一起,再全部释放,就可以避免内存泄漏,也就可以管理好内存。为了判断对象是否需要释放,eben 在每一个底层类型头部都嵌套了 Obj obj 字段。...该字段中内含 isMarked 布尔字段被用来判断对象是否该释放。

    1.4K30
    领券