首页
学习
活动
专区
工具
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编写的,安装Python和pip。.../your-script.sh# 运行Python脚本python3 your-script.py示例:运行一个简单的Shell脚本假设你有一个名为myscript.sh的Shell脚本,内容如下:#!...sh复制代码crontab -e在crontab文件中添加如下行,表示每天凌晨2点运行脚本:sh复制代码0 2 * * * /remote/path/to/your-script.sh常见问题排查权限问题

    12610

    Linux中将普通脚本注册为系统服务

    步骤1:编写你的脚本首先,你需要有一个可执行的脚本。假设我们有一个名为myscript.sh的脚本,它是一个简单的Hello World脚本。#!...确保你的脚本有执行权限:chmod +x myscript.sh步骤2:创建服务文件接下来,你需要创建一个.service文件来定义你的脚本作为一个服务。这个文件将包含服务的元数据和行为。...[Service]部分定义了服务的类型、启动命令和重启策略。[Install]部分指定了服务应该在哪个目标下启动。...确保将ExecStart中的/path/to/myscript.sh替换为你的脚本实际路径。步骤3:启动服务并设置为开机启动现在,你可以使用systemctl命令来启动服务,并设置为开机启动。...systemctl status myscript.service步骤4:停止和禁用服务如果你需要停止服务或禁用开机启动,可以使用以下命令:停止服务:sudo systemctl stop myscript.service

    16400

    了解和学习基本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结构来定义这样的条件。...由于显而易见的原因,不可能在任何单个教程中涵盖这些主题的每一个方面,这就是为什么我们希望这些文章让你在正确的道路上自己尝试新的东西,并继续学习。

    73020

    Windows DOS格式脚本和Linux Unix格式脚本差异导致的跨平台问题

    一、DOS格式和Unix格式介绍DOS格式和Unix格式是两种不同的文本文件格式,它们在行结束符(line ending)上有显著的区别。这些差异源于不同的操作系统历史和设计哲学。...在DOS、Windows以及许多其他早期的操作系统(如CP/M)中,行结束符由两个字符组成:回车(Carriage Return, CR)和换行(Line Feed, LF)。.../myScript.sh ..../myScript.sh: line 41: syntax error: unexpected end of file三、解决方案3.1 转换方式1:在Linux中,用vim打开脚本[root@test...to Unix format ...四、快速检查脚本是否有语法错误# 命令有输出则是有语法错误[root@test ~]# sh -n myScript.sh注:用"-n" 选项只会读取shell脚本

    5310

    编写可靠 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 进程的前台后台切换

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

    38500

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

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

    96020
    领券