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

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
dbcafe
帖子: 44
注册时间: 2011-01-15 12:54

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

#1

帖子 dbcafe » 2012-02-09 9:48

比如这样一个脚本文件

代码: 全选

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

代码: 全选

echo oooo
改为

代码: 全选

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

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

#2

帖子 fhmdgxs » 2012-02-09 10:03

1.写两个shell
a.sh
sleep n; sh ./b.sh

b.sh
echo oooo
头像
老蒋
帖子: 52
注册时间: 2007-01-21 15:48
来自: 四川

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

#3

帖子 老蒋 » 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运行脚本前会把脚本全部读到内存,所以你修改脚本不会对内存的产生影响。
dbcafe
帖子: 44
注册时间: 2011-01-15 12:54

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

#4

帖子 dbcafe » 2012-02-09 10:12

fhmdgxs 写了:1.写两个shell
a.sh
sleep n; sh ./b.sh

b.sh
echo oooo
谢谢先 :em42 这个我也想过,但任务一多就很麻烦了。难道只能用专门的任务调度工具了?
我不想用盗版WinXP,只是被工行网银逼。
dbcafe
帖子: 44
注册时间: 2011-01-15 12:54

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

#5

帖子 dbcafe » 2012-02-09 10:15

老蒋 写了:
这个和Linux没有关系。
shell和powershell运行机制有差别。

bash运行脚本前会把脚本全部读到内存,所以你修改脚本不会对内存的产生影响。
这就是说没戏了?
我不想用盗版WinXP,只是被工行网银逼。
头像
懒蜗牛Gentoo
论坛版主
帖子: 7362
注册时间: 2007-03-02 17:36
系统: Linux Mint

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

#6

帖子 懒蜗牛Gentoo » 2012-02-09 10:33

说说你的具体需求?我相信你的需求并不需要用这种另类的方法实现的
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
fhmdgxs
帖子: 3
注册时间: 2009-05-11 16:00

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

#7

帖子 fhmdgxs » 2012-02-09 10:35

其实你这个逻辑不对。。你要是改好多处, 在一个文件跟在多个文件差不多
我还有一些换汤不换药的笨办法
比如

code.sh

代码: 全选

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

echo "string"
rflag=first ./code.sh 这样执行
dbcafe
帖子: 44
注册时间: 2011-01-15 12:54

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

#8

帖子 dbcafe » 2012-02-09 13:26

懒蜗牛Gentoo 写了:说说你的具体需求?我相信你的需求并不需要用这种另类的方法实现的
需求么,就是有比较大批量的任务,科学计算那种,计算的指令执行一次要四五个小时,要计算的东西又会偶尔临时调整(增删,调整顺序什么的),在win下边用bat感觉还比较顺手,但shell提交了就不能更改了
我不想用盗版WinXP,只是被工行网银逼。
dbcafe
帖子: 44
注册时间: 2011-01-15 12:54

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

#9

帖子 dbcafe » 2012-02-09 13:29

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也没找到
我不想用盗版WinXP,只是被工行网银逼。
头像
lotutu
帖子: 730
注册时间: 2010-12-23 16:29
来自: 北京

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

#10

帖子 lotutu » 2012-02-09 22:32

把数据和代码分开怎样?
回复