在 shell 脚本运行时编辑它

2023-11-26

您可以在 shell 脚本运行时对其进行编辑并使更改影响正在运行的脚本吗?

我很好奇 csh 脚本的具体情况,我让该批处理运行一堆不同的构建风格并运行整夜。如果我在操作过程中发生了一些事情,我想进去添加额外的命令,或者注释掉未执行的命令。

如果不可能,是否有任何外壳或批处理机制可以让我做到这一点?

当然,我已经尝试过了,但要过几个小时才能看到它是否有效,而且我很好奇幕后发生了什么或没有发生什么。


It does影响,至少在我的环境中是 bash,但是在非常不愉快的方式。请参阅这些代码。第一的a.sh:

#!/bin/sh

echo "First echo"
read y

echo "$y"

echo "That's all."

b.sh:

#!/bin/sh

echo "First echo"
read y

echo "Inserted"

echo "$y"

# echo "That's all."

Do

$ cp a.sh run.sh
$ ./run.sh
$ # open another terminal
$ cp b.sh run.sh  # while 'read' is in effect
$ # Then type "hello."

就我而言,输出始终是:


hello
hello
That's all.
That's all.  

(当然,自动化它要好得多,但上面的示例是可读的。)

[编辑]这是不可预测的,因此很危险。这最好的解决方法是 , 如此处所述 将所有内容放在大括号中,并在右大括号之前添加“exit”. 仔细阅读链接的答案以避免陷入陷阱。

[补充] 确切的行为取决于一个额外的换行符,也许还取决于您的 Unix 风格、文件系统等。如果您只是想查看一些影响,只需在 b.sh 之前和/或之后添加“echo foo/bar”即可“读”行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 shell 脚本运行时编辑它 的相关文章

  • 检查 Bash 数组中是否存在元素[重复]

    这个问题在这里已经有答案了 我想知道是否有一种有效的方法来检查 Bash 数组中是否存在元素 我正在寻找类似于我可以在Python中做的事情 例如 arr a b c d if d in arr do your thing else do
  • adb shell:无法使用 ESCAPE 键

    I want to use vi when running adb shell Starting vi is easy However I found that the ESC key doesn t seem to get through
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • sh read 命令会吃掉输入中的反斜杠吗?

    也许最容易用一个例子来解释 echo echo while read in do echo in done 看来read命令将输入 中的反斜杠解释为转义符并删除它们 我需要逐行处理文件而不更改其内容 并且我不知道如何停止在这里智能读取 有任
  • 运行此处编译的 C 程序会导致在另一台服务器上找不到 GLIBC 库错误 - 是我的错还是他们的错?

    此处编译的 C 程序在我们的 Ubuntu 服务器上运行良好 但是当其他人尝试在他们的特定 Linux 服务器上运行它时 他们会收到以下错误 myprog install lib tls libc so 6 version GLIBC 2
  • 使用c在linux上分块读写

    我有一个 ASCII 文件 其中每一行都包含一个可变长度的记录 例如 Record 1 15 characters Record 2 200 characters Record 3 500 characters Record n X cha
  • awk 返回两个变量

    现在这就是我正在做的事情 ret ls la awk print 3 9 usr echo ret awk print 1 fil echo ret awk print 2 问题是我没有运行ls我正在运行一个需要时间的命令 因此您可以理解其
  • 如何在文件夹中的 xml 文件中 grep 一个单词

    我知道我可以使用 grep 在这样的文件夹中的所有文件中查找单词 grep rn core 但我当前的目录有很多子目录 我只想搜索当前目录及其所有子目录中存在的所有 xml 文件 我怎样才能做到这一点 我试过这个 grep rn core
  • 为什么默认情况下不启用 arp 忽略/通告 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个需要经验才能回答的具体问题 为什么 arp ignore arp announce 在 Linux 安装 例如 debian 上默认不启用 有
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • 在 C# 中编写批处理脚本的好方法是什么?

    我想用 C 编写简单的脚本 我通常会使用 bat 或 4NT btm 文件 复制文件 解析文本 询问用户输入等等 相当简单 但在批处理文件中正确执行这些操作确实很困难 例如没有例外 我熟悉像 AxScript 这样的命令行 脚本 包装器 这
  • 带有二进制数据的 Bash echo 命令?

    有人可以解释一下为什么这个脚本有时只返回十六进制字符串表示形式的 15 个字节吗 for i in 1 10 do API IV openssl rand 16 API IV HEX echo n API IV od vt x1 w16 a
  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • aarch64 Linux 硬浮点或软浮点

    linux系统有arm64 有arm架构armv8 a 如何知道 Debian 运行的是硬浮动还是软浮动 符合 AAPCS64 GNU GCC for armv8仅提供硬浮动aarch64工具链 这与 armv7 a 的 GCC 不同 后者
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • 在 Shell 中提取匹配模式后的字符串

    如何提取 Shell 脚本中匹配模式后面的任何字符串 我知道 Perl 脚本中的此功能 但不知道 Shell 脚本中的功能 以下是示例 subject 01 这是一个示例主题 可能会有所不同 我必须提取 Subject 01 后面的任何字符
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na

随机推荐

  • 在 Oracle 中找不到请求的 .Net Framework 数据提供程序

    string constr 数据源 DESCRIPTION ADDRESS PROTOCOL tcp HOST spp01 PORT 1521 CONNECT DATA SID Global 用户 ID SYSMAN 密码 testman3
  • 将两个 Uint32Array 值转换为 Javascript 数字

    我找到了一个代码here将 Javascript 数字转换为内部 IEEE 表示形式作为两个 Uint32 值 function DoubleToIEEE f var buf new ArrayBuffer 8 new Float64Arr
  • 收到“530 5.7.0 必须首先发出 STARTTLS 命令。”通过netcat发送邮件时出错

    我正在尝试使用 netcat 发送电子邮件 这就是我得到的 MacBook Pro nc smtp gmail com 25 220 mx google com ESMTP h8sm66301168eew 16 gsmtp Helo gma
  • 用jquery更改flash src?

    您好 我有一个显示一些链接的闪存菜单 但是当用户登录时 我想将菜单从 menu1 更改为 menu2 这样它将显示 我的帐户 而不是 注册 下面的代码适用于我的闪光灯 div div
  • 如何在android中以编程方式更改应用程序小部件中的图像

    我设计了一个 Android 应用程序小部件 其中有两个ImageView我想更改两个图像ImageView当单击图像以及调用方法时 现在我用RemoteView像这样 RemoteViews views1 new RemoteViews
  • 为什么 Activity 中的 onCreate() 受到保护?

    为什么Activity中的onCreate 受到保护 或者我应该问 为什么它有效 受保护的方法只能在类本身或其后代的内部调用 所以Android系统不能像 act onCreate 那样调用它 那么 怎么称呼呢 顺便说一句 为什么 OnCl
  • xgboost 多类工作中的 base_score 有什么用?

    我正在尝试探索 Xgboost 二元分类以及多类的工作原理 在二进制类的情况下 我观 察到基本分数被认为是起始概率 并且在计算时也显示出重大影响Gain and Cover 在多类别的情况下 我无法弄清楚的重要性基本分数参数 因为它向我显示
  • 如何使用 SVN 日志检测修改的属性

    背景 编写一个自动发布脚本 从SVN导出版本之间更改的文件并上传到远程服务器 svn log 命令显示修改的文件and属性 但似乎没有区分内容修改和属性修改之间的详细输出 我是否错误地读取了此输出 或者是否有一种简单的方法可以获取修订之间已
  • 从网站打开资源管理器窗口

    我的公司有一个用于项目的共享网络文件夹 该文件夹包含我们每个客户的子文件夹 每个子文件夹包含为这些客户完成的项目的所有信息 有道理 是吗 OK 我收到了一项任务 当在我们公司的 MS CRM 中查看客户帐户时 允许用户单击一个按钮 打开资源
  • Try/Catch 内部或外部函数

    我有一个关于使用最佳实践的非常基本的问题try catch 我有一个像这样的简单函数 DAO public void addVehicle Vehicle vehicle em getTransaction begin em persist
  • 如何让 Spring Security 接受 JSON 而不是表单参数?

    我正在尝试更改 JHipster 以便它使用 JSON 对象而不是表单参数进行身份验证 我已经设法使其适用于 JWT 身份验证机制 现在我想为其他身份验证选项执行此操作 有没有一种简单的方法可以更改 Spring Security 的默认安
  • void main() { if(sizeof(int) > -1) printf("true"); }否则 printf("假"); ; [复制]

    这个问题在这里已经有答案了 void main if sizeof int gt 1 printf true else printf false 我期望输出为真 但结果是假的 谁能解释一下输出的原因 sizeof int 属于类型size
  • 检查点是否在圆内

    我有一个以纬度 经度表示的点 Position louvreMuseum new Position 48 861622 2 337474 我有一个以米表示的半径值 我需要检查另一个点 也以纬度 经度表示 是否在圆内 如果我在平坦的表面上 我
  • Webservice 无法在 Android Retrofit 中工作,但可以在 Postman 和 Swift / iOS 中工作,获取 401 Unauthorized

    技术内容 之前的简报对于使用 Retrofit 并不陌生 但遇到了这种奇怪的行为 我很难理解和修复它 我有两个网络服务 在 Postman 和 iOS 中都按预期工作正常 但只有一个在 Retrofit 中工作 而另一个则不行 在我的辩护中
  • Android应用如何自动切换为深色模式?

    我正在制作一个 Android 应用程序 我为深色模式制作了另一个 UI 这就是我所需要的 该应用程序将在当地时间之前自动切换到深色主题 例如 当当地时间太阳落山时 应用程序将切换到黑暗模式 或者另一种选择是在一天中预设的时间切换到深色模式
  • Visual Studio for ASP.NET 5 项目是否需要 .sln 文件?可以只使用 Global.json 吗?

    在 ASP NET 5 项目中 Visual Studio 创建了一个SLN文件 还有一个global json我的理解是核心解决方案文件 Is SLN文件只是为了 VS 支持 你可以在VS中打开一个解决方案而不使用SLN file 我假设
  • Chrome 和 Safari 缓存 302 重定向

    人们已经提出了各种不同的问题 但我还没有看到真正的答案 我们有一个单独的图像服务 我们的网络应用程序使用它来获取一些图像 图像服务经过良好测试并且运行正常 具体来说 我们的应用程序由domain com The src的元素img元素是im
  • 无法连接到端口 5432 上的 Postgresql

    我在运行 Ubuntu Server 14 04 的服务器上安装了 PostgreSQL 9 3 如果我通过终端 ssh 进入服务器 我就可以使用 psql 连接 但是当我尝试配置 pgAdmin III 进行远程连接时 我得到 服务器不监
  • Emacs 有 BNF 模式吗?

    我必须编辑大量 bnf 格式的语法文件 Emacs 中有这样的模式吗 我查看了 CEDET 的语义包 它似乎曾经有 bnf 模式 但现在不再有 这段代码可以在谷歌上搜索 但语义 bnf mode 似乎不存在 autoload semanti
  • 在 shell 脚本运行时编辑它

    您可以在 shell 脚本运行时对其进行编辑并使更改影响正在运行的脚本吗 我很好奇 csh 脚本的具体情况 我让该批处理运行一堆不同的构建风格并运行整夜 如果我在操作过程中发生了一些事情 我想进去添加额外的命令 或者注释掉未执行的命令 如果