分页: 1 / 1
[问]bash脚本能在运行中修改么?
发表于 : 2012-02-09 9:48
由 dbcafe
比如这样一个脚本文件
代码: 全选
#!/bin/bash
sleep 30
echo oooo
在执行后,sleep的30秒期间把
改为
并保存,是不会有效果的。
怎样让这种效果实时地反映在脚本执行上呢?
Windows批处理貌似是可以的,bat文件会记住下一条语句的文件偏移量,修改正在执行语句之后内容是立即有效的。
Linux应该能做到这种效果吧,我觉得Win能做到的Linux都能做到

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

。
这个和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
谢谢先

这个我也想过,但任务一多就很麻烦了。难道只能用专门的任务调度工具了?
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
把数据和代码分开怎样?