[已解决]求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

sh/bash/dash/ksh/zsh等Shell脚本
头像
123662981
帖子: 55
注册时间: 2010-10-22 22:11

[已解决]求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#1

帖子 123662981 » 2012-04-01 9:19

如题,要做一个能够自动安装软件的shell脚本.
由于安装过程中电脑需要自动重启,这就需要使它能够自动继续安装在电脑重启完之后.
求助,大神帮帮我
上次由 123662981 在 2012-04-11 9:58,总共编辑 1 次。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#2

帖子 枫叶饭团 » 2012-04-01 9:29

只能加启动项了?话说,我还没遇见过装软件会自动重启的?
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#3

帖子 aerofox » 2012-04-01 9:30

在重启之前用脚本生成一个自动执行的脚本,在安装完成时删除那个自动执行的脚本。
头像
123662981
帖子: 55
注册时间: 2010-10-22 22:11

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#4

帖子 123662981 » 2012-04-01 9:32

aerofox 写了:在重启之前用脚本生成一个自动执行的脚本,在安装完成时删除那个自动执行的脚本。
你意思是说把这个自动执行的脚本放在启动项里面么?等安装结束再把它删了?
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#5

帖子 cao627 » 2012-04-01 12:05

读取文件A语句
跟据文件内容
是XX
{
执行脚本重启之前部分
将YY写入覆盖文件A
将这个脚本文件设为开启自动执行
重启
}

是YY
{

执行重启后脚本部分
取消这个脚本文件开机自启动
删除文件A语句
}
头像
123662981
帖子: 55
注册时间: 2010-10-22 22:11

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#6

帖子 123662981 » 2012-04-01 17:04

cao627 写了:读取文件A语句
跟据文件内容
是XX
{
执行脚本重启之前部分
将YY写入覆盖文件A
将这个脚本文件设为开启自动执行
重启
}

是YY
{

执行重启后脚本部分
取消这个脚本文件开机自启动
删除文件A语句
}
首先,谢谢你的回答.
当中有几点我不太清楚,可否赐教:
1.文件A是否指的是脚本?
2.如何将脚本设置为开启自动执行?(关键是放在那个系统配置文件内,例如~/.config/autotest/.desktop或者~/.bashrc)
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#7

帖子 cao627 » 2012-04-01 17:27

文件A是你手动创建的文件,内容先写入yes

以下是你脚本文件的逻辑:

读入文件A文件的内容
如果内容为yes{
执行启动动之前的语句
将文件A的内容改为no
将脚本文件设为开机自启动
重启
}

如果文件A内容为no{
执行启动之后的语句
取消脚本自启动
删除文件A
}

见笑了
头像
123662981
帖子: 55
注册时间: 2010-10-22 22:11

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#8

帖子 123662981 » 2012-04-01 17:38

cao627 写了:文件A是你手动创建的文件,内容先写入yes

以下是你脚本文件的逻辑:

读入文件A文件的内容
如果内容为yes{
执行启动动之前的语句
将文件A的内容改为no
将脚本文件设为开机自启动
重启
}

如果文件A内容为no{
执行启动之后的语句
取消脚本自启动
删除文件A
}

见笑了
:em11 太厉害了,我的思路一下子清楚了.
那是不是也可以理解为:
直接在脚本一开始设置一个变量A=yes,然后在脚本执行到第1阶段时把A=no.
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#9

帖子 cao627 » 2012-04-01 17:47

变量重启后能保持不变吗?

脚本一开始设置一个变量A=yes
当重启后自动执行脚本文件
A又被yes赋
no分支永远执行能不到
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#10

帖子 aerofox » 2012-04-01 20:15

123662981 写了:
aerofox 写了:在重启之前用脚本生成一个自动执行的脚本,在安装完成时删除那个自动执行的脚本。
你意思是说把这个自动执行的脚本放在启动项里面么?等安装结束再把它删了?
我的意思是这样:把你的安装脚本程序分为两段,重启前执行的叫 setup1,重启后执行的叫 setup2,在 setup1 执行到要重启的地方:

代码: 全选

cp setup2 /etc/rc2.d/S90setup2
在 setup2 中执行到安装即将完成时:

代码: 全选

rm /etc/rc2.d/S90setup2
头像
naturalaw
帖子: 1360
注册时间: 2011-09-06 22:04

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#11

帖子 naturalaw » 2012-04-02 13:52

:em20 :em20 :em20 我知道需求分析難了。
  • The eternal law
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#12

帖子 cao627 » 2012-04-02 13:55

aerofox 我想问下?
脚本直接在/etc/rc2.d/ 就行吗,
这样的话setup2在它执行的时候能删除运行中的自己吗

代码: 全选

ln -s /etc/rc2.d/S90setup2    /path/setup2
还是必要的吧
这样的话脚本语句rm /etc/rc2.d/S90setup2
删除的是个链接而不是执行脚本本身
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#13

帖子 aerofox » 2012-04-02 16:32

删除自己是没问题的,脚本运行时并不锁定脚本文件。
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#14

帖子 cao627 » 2012-04-02 19:56

脚本运行时并不锁定脚本文件。
谢谢
头像
123662981
帖子: 55
注册时间: 2010-10-22 22:11

Re: 求助:谁能告诉我当shell脚运行后,如何在电脑重启后继续

#15

帖子 123662981 » 2012-04-04 22:08

谢谢各位的宝贵意见,明天回去会直接去试一下,希望能够成功! :em06
回复