分页: 1 / 1

[问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 9:48
dbcafe
比如这样一个脚本文件

代码: 全选

#!/bin/bash
sleep 30
echo oooo
在执行后,sleep的30秒期间把

代码: 全选

echo oooo
改为

代码: 全选

echo xxxx 
并保存,是不会有效果的。
怎样让这种效果实时地反映在脚本执行上呢?
Windows批处理貌似是可以的,bat文件会记住下一条语句的文件偏移量,修改正在执行语句之后内容是立即有效的。
Linux应该能做到这种效果吧,我觉得Win能做到的Linux都能做到 :em09

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 10:03
fhmdgxs
1.写两个shell
a.sh
sleep n; sh ./b.sh

b.sh
echo oooo

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 10:08
老蒋
dbcafe 写了:比如这样一个脚本文件

代码: 全选

#!/bin/bash
sleep 30
echo oooo
在执行后,sleep的30秒期间把

代码: 全选

echo oooo
改为

代码: 全选

echo xxxx 
并保存,是不会有效果的。
怎样让这种效果实时地反映在脚本执行上呢?
Windows批处理貌似是可以的,bat文件会记住下一条语句的文件偏移量,修改正在执行语句之后内容是立即有效的。
Linux应该能做到这种效果吧,我觉得Win能做到的Linux都能做到 :em09
这个和Linux没有关系。
shell和powershell运行机制有差别。

bash运行脚本前会把脚本全部读到内存,所以你修改脚本不会对内存的产生影响。

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 10:12
dbcafe
fhmdgxs 写了:1.写两个shell
a.sh
sleep n; sh ./b.sh

b.sh
echo oooo
谢谢先 :em42 这个我也想过,但任务一多就很麻烦了。难道只能用专门的任务调度工具了?

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 10:15
dbcafe
老蒋 写了:
这个和Linux没有关系。
shell和powershell运行机制有差别。

bash运行脚本前会把脚本全部读到内存,所以你修改脚本不会对内存的产生影响。
这就是说没戏了?

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 10:33
懒蜗牛Gentoo
说说你的具体需求?我相信你的需求并不需要用这种另类的方法实现的

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 10:35
fhmdgxs
其实你这个逻辑不对。。你要是改好多处, 在一个文件跟在多个文件差不多
我还有一些换汤不换药的笨办法
比如

code.sh

代码: 全选

if [ "$rflag" == "first" ]
then
    while ture
    do
        rflag=child ./code.sh
        sleep n
    done 
fi

echo "string"
rflag=first ./code.sh 这样执行

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 13:26
dbcafe
懒蜗牛Gentoo 写了:说说你的具体需求?我相信你的需求并不需要用这种另类的方法实现的
需求么,就是有比较大批量的任务,科学计算那种,计算的指令执行一次要四五个小时,要计算的东西又会偶尔临时调整(增删,调整顺序什么的),在win下边用bat感觉还比较顺手,但shell提交了就不能更改了

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 13:29
dbcafe
fhmdgxs 写了:其实你这个逻辑不对。。你要是改好多处, 在一个文件跟在多个文件差不多
我还有一些换汤不换药的笨办法
比如

code.sh

代码: 全选

if [ "$rflag" == "first" ]
then
    while ture
    do
        rflag=child ./code.sh
        sleep n
    done 
fi

echo "string"
rflag=first ./code.sh 这样执行
看不懂呀,first 和 child 是什么呢? Google也没找到

Re: [问]bash脚本能在运行中修改么?

发表于 : 2012-02-09 22:32
lotutu
把数据和代码分开怎样?