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

为什么` `sh myscript`和` `source myscript`的$0不一样?

sh myscriptsource myscript是两种不同的方式来执行脚本文件。

  • 当使用sh myscript命令执行脚本时,$0表示的是当前脚本的文件名。这是因为sh命令是一个独立的进程,它会将脚本文件作为参数传递给自己,因此$0会被设置为脚本文件的名称。
  • 当使用source myscript或者.命令执行脚本时,$0表示的是当前shell的名称。这是因为source命令是在当前shell环境下执行脚本,而不是启动一个新的进程。因此,$0会被设置为当前shell的名称。

这两种方式的不同导致了$0的取值不同。在实际应用中,可以根据需要选择使用sh命令或者source命令来执行脚本,具体取决于是否需要在当前shell环境中执行脚本所做的修改生效。

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

相关·内容

新加坡服务器上如何实现自动脚本运行

以下是详细步骤指南,适用于Linux服务器:1. 连接到服务器使用SSH连接到服务器确保你有服务器IP地址SSH密钥文件(或密码)。...配置环境安装必要软件依赖根据脚本要求,安装必要软件包依赖。常用软件包管理器有apt(Debian/Ubuntu)yum(CentOS/RHEL)。...如果脚本是用Python编写,安装Pythonpip。.../your-script.sh# 运行Python脚本python3 your-script.py示例:运行一个简单Shell脚本假设你有一个名为myscript.shShell脚本,内容如下:#!...sh复制代码crontab -e在crontab文件中添加如下行,表示每天凌晨2点运行脚本:sh复制代码0 2 * * * /remote/path/to/your-script.sh常见问题排查权限问题

10010

了解学习基本Shell脚本Linux文件系统疑难解答 - 第10部分

键入以下命令以创建名为myscript.sh文件,然后按Enter键。 # vim myscript.sh shell脚本第一行必须是如下(也称为家当 )。 #!...# chmod 755 myscript.sh 在运行我们脚本之前,我们需要说一下$ PATH环境变量中几句话。.../myscript.sh # cp myscript.sh ../bin # cd ...../bin # pwd # myscript.sh 执行脚本 条件 每当你需要指定动作不同课程采取在shell脚本,作为一个命令成功或失败结果,您将使用if结构来定义这样条件。...由于显而易见原因,不可能在任何单个教程中涵盖这些主题每一个方面,这就是为什么我们希望这些文章让你在正确道路上自己尝试新东西,并继续学习。

70620

编写可靠 bash 脚本一些技巧

0. set -x -e -u -o pipefail 在写脚本时,在一开始(Shebang 之后)加上下面这一句,或者它缩略版,能避免很多问题,更重要是能让很多隐藏问题暴露出来: set -xeuo...用法 1:假设你入口脚本是 myscript.sh,可以新建一个脚本,通过 flock 来运行它: # flock --wait 超时时间   -e 锁文件   -c "要执行命令" # 例如: flock...  --wait 5  -e "lock_myscript"  -c "bash myscript.sh" 用法 2:也可以在原有脚本里使用 flock。...exec 123lock_myscript   # 把lock_myscript打开为文件描述符123 flock  --wait 5  123 || { echo 'cannot get lock...意外退出时杀掉所有子进程 我们脚本通常会启动好多子脚本子进程,当父脚本意外退出时,子进程其实并不会退出,而是继续运行着。如果脚本是周期性运行,有可能发生一些意想不到问题。

1.2K21

Linux Bash脚本15分钟进阶教程

脚本函数 在bash里你可以定义函数,它们就跟其它命令一样,可以随意使用;它们能让你脚本更具可读性: ExtractBashComments() { egrep "^#" } cat myscript.sh...| ExtractBashComments | wc comments=$(ExtractBashComments < myscript.sh) 还有一些例子: SumLines() { # iterating...bash代码移入到函数里,仅把全局变量、常量对“main”调用语句放在最外层。...MARKER 内置变量 变量 说明 $0 脚本名称 $n 传给脚本/函数第n个参数 $$ 脚本PID $! 上一个被执行命令PID(后台运行进程) $?...调试 对脚本进行语法检查: bash -n myscript.sh 跟踪脚本里每个命令执行: bash -v myscripts.sh 跟踪脚本里每个命令执行并附加扩充信息: bash -x myscript.sh

1.1K00

运行耗时比较长代码就需要后台运行了

在Linux或者Unix系统中,你可以使用nohup命令&符号来在后台运行R脚本。这样即使你关闭了终端,你R脚本也会继续运行。...这个时候如何编写名为myscript.RR脚本内容就是大家需要考虑了。...然后,它使用dplyrsummarise_all函数计算了每个数值列平均值标准差。最后,它将结果写入到名为output.csv新CSV文件中。...这个函数返回一个字符向量,其中包含了传递给脚本所有参数。例如,假设你有一个名为myscript.R脚本,你想让它接受两个参数:输入文件名称输出文件名称。...pyscenic转录因子分析结果展示之5种可视化 使用cytoTRACE评估不同单细胞亚群分化潜能 明明是一个热图就能搞定事情为什么要复杂到蛋壳图呢 基于非负矩阵分解单细胞降维聚类分群 比如肿瘤单细胞里面的上皮细胞通常是需要走

53220

Linux 进程前台后台切换

前言当你用shell启动一个程序时,往往他是在前台工作。程序会一直占用终端命令行,例如你在前台解压时候必须等着,期间干不了别的事(除非另开一个终端)。...例如经常用连接到远程服务器执行脚本时候,如果本地网络中断后,这个时候前台进程就结束了,比较懊恼,必须重新执行。简单例子在后台运行一个命令,例如使用&符号。..../shella.sh &使用jobs命令查看后台作业列表。添加-l选项时,它提供更详细输出,显示作业详细信息。jobsjobs -l使用fg命令将某个作业切换到前台。例如,如果作业号为1。...kill %1使用 kill %1可以直接终止后台运行程序。nohup ./myscript.sh &这个命令将执行..../myscript.sh脚本,并且即使你退出当前终端,该脚本仍将继续在后台运行(利用ps、jobs等可以查看到)。

22800

JavaScript -1- 基础教程与部分功能示例

JavaScript 是属于 HTML Web 编程语言,编程令计算机完成您需要它们做工作。本文记录基础教程与部分功能。...如需使用外部脚本,请在 标签 src (source) 属性中设置脚本名称: 实例 可以在 <head...外部脚本优势 在外部文件中放置脚本有如下优势: 分离了 HTML 代码 使 HTML JavaScript 更易于阅读维护 已缓存 JavaScript 文件可加速页面加载 如需向一张页面添加多个脚本文件...- 请使用多个 script 标签: 实例 外部引用...js/myScript1.js"> 基本语法 条件语句 使用 if 来规定要执行代码块,如果指定条件为 true 使用 else 来规定要执行代码块,如果相同条件为 false

70420

Shell 编程:探索 Shell 基本概念与用法

/test.sh #执行脚本2、作为解释器参数/bin/sh test.sh/bin/php test.phpShell 变量变量是一种存储操作数据基本方式。...环境变量存储了一些配置信息、路径其他重要数据,它们可以被不同程序脚本访问使用。环境变量是在整个Shell会话中都可用特殊变量。你可以使用 export 命令将一个变量升级为环境变量。...位置参数# 脚本名:myscript.shecho "第一个参数是: $1"echo "第二个参数是: $2"执行..../myscript.sh arg1 arg2输出第一个参数是: arg1第二个参数是: arg22、特殊变量除了位置参数,还有一些特殊变量用于获取有关脚本自身其环境信息,$0:脚本名称、$#:传递给脚本参数个数.../special.sh参数个数:3参数列表:arg1 arg2 arg3参数列表(作为单个字符串):arg1 arg2 arg3上一个命令退出状态:0Shell echo命令1、打印文本消息echo

22221

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券