您可以在 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(使用前将#替换为@)