linux 按下回车linux shell 继续执行行下面的脚本语句

11:20 提问
linux同时执行一个目录下的所有脚本。
linux同时执行一个目录下的所有脚本,我使用的是下面的命令:
#!/system/bin/sh
for file in ls /data/misc/scripttest/*.sh
这样的话可以执行所有的脚本,但是他是等前面一个脚本执行完成之后才执行后面一个的,怎么样写才能让这个目录下的所有脚本同时被执行呢?谢谢
按赞数排序
linux中,命令后面加上取地址符‘&’,表示此条命令在当前登录用户中转入后台执行。如果当前登录用户退出,则用户下所有后台命令都会强制退出。
在命令前面加上nohup后,则把命令交由系统后台执行,当前用户退出不影响命令执行。
nohup $file &
这样的话,命令执行完成后,会把标准输出写入到nohup.out文件中。如果需要记录日志,在加上重定向就行。
nohup $file & $file.log &
最好前面加上nohup, 不然当前shell被关闭的时候,还没有执行完的脚本会被强制结束!
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 18, 距离下一级还需 182 积分
论坛徽章:0
例如脚本中有下面三行
我发现因为a $1执行要好几分钟(a是一个cpp执行文件),结果后面两行好像执行完了,导致结果出错。
这是怎么回事?难道不是一条语句执行完毕才会执行另一条语句吗?
家境小康, 积分 1887, 距离下一级还需 113 积分
论坛徽章:0
a $1 && cd $data && rm *TEMP*
稍有积蓄, 积分 338, 距离下一级还需 162 积分
论坛徽章:0
原帖由 richardzhangs 于
09:10 发表
例如脚本中有下面三行
我发现因为a $1执行要好几分钟(a是一个cpp执行文件),结果后面两行好像执行完了,导致结果出错。
这是怎么回事?难道不是一条语句执行完毕才会执行另一条 ...
也想弄明白,望高手指点一下。
a $1 && cd $data && rm *TEMP*
当然,cxfcxf 的方法确实可以解决,但是如果每个命令行都比较长的话,一个脚本下来,就不便于阅读了
论坛徽章:8
说不定a可以自身后台运行
白手起家, 积分 40, 距离下一级还需 160 积分
论坛徽章:0
再试试 有一次遇到好像是错误了就不执行下一句了。初学:wink:
家境小康, 积分 1806, 距离下一级还需 194 积分
论坛徽章:0
回复 #1 richardzhangs 的帖子
在同一个shell里面是按顺序执行的
大富大贵, 积分 17022, 距离下一级还需 2978 积分
论坛徽章:0
在同一个shell里面是按顺序执行的,但不能理解成:一定是上一句执行才执行下一句,因为可以后台执行
大富大贵, 积分 17022, 距离下一级还需 2978 积分
论坛徽章:0
回复 #5 yinbengui 的帖子
有一次而已吧?
[rockfall@Rocfall ~/tmp/sh]$cat test.sh
#!/bin/bash
cd /no/suchdir
echo can you see me?
[rockfall@Rocfall ~/tmp/sh]$./test.sh
./test.sh: line 3: cd: /no/suchdir: No such file or directory
can you see me?
白手起家, 积分 119, 距离下一级还需 81 积分
论坛徽章:2
shell 是顺序执行的
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(5706)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'linux 下shell脚本执行多个命令的方法',
blogAbstract:'\r\n1.每个命令之间用;隔开说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。2.每个命令之间用&&隔开说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。3.每个命令之间用||隔开说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。 \r\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'IT女汉子',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}酷勤网 C 程序员的那点事!
浏览次数:次
我在写一个SHELL程序,可是遇到了一个难题,在READ接受输入时,必须按回车键才能确认,而我需要只要按一个键就能得到用户的输入,无须按回车键!有什么好办法呢请各位大侠不吝赐教!&深感为谢!
&michaelds 回复于: 13:37:04
一个经典的小难题,HERE&you&are:把下面这个函数如法应用到你的程序中去吧。#!/bin/shget_char(){&&&&&&&&SAVEDSTTY=`stty&-g`&&&&&&&&stty&-echo&&&&&&&&stty&raw&&&&&&&&dd&if=/dev/tty&bs=1&count=1&2&&/dev/null&&&&&&&&stty&-raw&&&&&&&&stty&echo&&&&&&&&stty&$SAVEDSTTY}echo&&Press&any&key&to&continue...&char=`get_char`
&michaelds 回复于: 13:45:05
忘了说了,如果你的机器上不认stty&raw那么把函数中两处出现的raw换成cbreak。
&valentine 回复于: 15:55:44
给加到精华里了。
&鸟人 回复于: 16:36:34
非常感谢!另外还有一个小问题:有没有什么好办法隐藏光标呢?
&sopato 回复于: 09:38:11
大家都不要谦虚了,轮流做不是很好吗??&:)
&txlinux 回复于: 10:55:01
真高兴,在&&valentine&,mygod&之后,又涌现出一位有志青年。真有点相见狠晚的感觉。我相信,&michaelds&即便不做斑竹,凭他的热心和能力,也会受到大家的支持和感谢的。
&萝卡 回复于: 21:37:03
如果是while&:docase1)....;2),....:0)done,输入1或2(不用敲回车)就可以运行的话,有办法吗
&红袖添香 回复于: 22:07:25
...呵呵,一年前的帖子哦~做成子程序来调用就好了,试试这个#!/usr/bin/kshget_char(){&&SAVEDSTTY=`stty&-g`&&stty&-echo&&stty&raw&&dd&if=/dev/tty&bs=1&count=1&2&&/dev/null&&stty&-raw&&stty&echo&&stty&$SAVEDSTTY}while&:doprintf&"press&any&key&or&RETRUN&to&quit:&"c=`get_char`case&"$c"&in&&[0-9])&echo&"this&is&digit&$c";;&&[a-zA-Z])&echo&"this&is&aphabet&$c";;&&^M)&;&&*)&echo&"Key&undefined!&"esacdone说明:^M&的输入方法是&CTRL-V-M
&htldm 回复于: 22:16:56
又学了一招.
&bzzyg 回复于: 23:05:41
请红袖添香老兄作一下解释,谢谢了!!get_char()&{&&&SAVEDSTTY=`stty&-g`&&&stty&-echo&&&stty&raw&&&dd&if=/dev/tty&bs=1&count=1&2&&/dev/null&&&stty&-raw&&&stty&echo&&&stty&$SAVEDSTTY&}
&红袖添香 回复于: 23:35:58
...也没什么可多说的,dd&if=/dev/tty&bs=1&count=1&2&&/dev/nullif&是源&设备/文件,这里表示从标准终端读入,block&size为&1,数目也为&1,所以就取到了一个字符这之前的和之后的一些&stty&语句主要是两个目的,1、终端上不要&echo2、保护现场,即做完dd后,即恢复原来的终端设置
&tiansgx 回复于: 10:05:34
红袖兄:关于“输入1或2(不用敲回车)就可以运行的话”那段代码,为什么敲回车,也回退出程序,有办法克服吗?还有就是stty的用法,哪里有文档可学习,请指教!
&nmgzw 回复于: 11:17:25
红袖姐你好啊!我试了你上面的程序,可总提示“Syntax&error&at&line&17:&'echo'&unexpected",我敢保证绝对和你写的一模一样的!我把下面这两行去掉就ok了![0-9])&echo&"this&is&digit&$c";;&[a-zA-Z])&echo&"this&is&aphabet&$c";;&运行结果press&any&key&or&RETRUN&to&quit:我按了^M后,变成press&any&key&or&RETRUN&to&quit:#,能不能让命令提示符出现在下面啊???
&nmgzw 回复于: 19:54:38
我姐不告诉我了!谁能告诉我这个是什么原因么??!谢谢!
&红袖添香 回复于: 20:01:53
引用:原帖由&"nmgzw"&发表:我姐不告诉我了!谁能告诉我这个是什么原因么??!谢谢!原因为你是用&copy&&&paste&的,这个&^M&拷过去是没用的。你必须自己用&CTRL-V-M&输入。
&nmgzw 回复于: 20:18:21
引用:原帖由&"红袖添香"&发表:原因为你是用&copy&&&paste&的,这个&^M&拷过去是没用的。你必须自己用&CTRL-V-M&输入。不是的,我是自己打进去的;引用:原帖由&"nmgzw"&发表:红袖姐你好啊!&我试了你上面的程序,可总提示“Syntax&error&at&line&17:&'echo'&unexpected",我敢保证绝对和你写的一模一样的!&我把下面这两行去掉就ok了!&[0-9])&echo&"this&is&digit&$c";;&[a-zA-Z])&echo&"this&is&aphabet&$c";;&运行结果press&any&key&or&RETRUN&to&quit:&我按了^M后正常退出,但命令提示符没出现在下一行,而是变成press&any&key&or&RETRUN&to&quit:#,能不能让命令提示符在退出后出现在下一行啊???
&红袖添香 回复于: 20:26:13
...噢,那有可能各系统有点不一样,我是在Solaris和IRIX下试的。你把这句改成这样试试。用引号引起来&&'^M')&;
&红袖添香 回复于: 20:31:14
...&倒,我看错了,是这两行的问题,[0-9])&echo&"this&is&digit&$c";;&[a-zA-Z])&echo&"this&is&aphabet&$c";;&完了,你的shell不支持&regex?那岂不是要写成&&1|2|3|4|5|6|7|8|9|0)&echo&"this&is&digit&$c";;&&a|b|c...我不往下写了,你自己补充吧,哈哈)&echo&"this&is&aphabet&$c";;我不太相信,这怎么可能,看一下你的帮助,说不定提到你的shell中用什么形式的regex
&tiansgx 回复于: 10:00:42
呜~,红袖偏心,不回答偶的问题是不是偶的嘴不够甜,下次偶吃了糖再来
&nmgzw 回复于: 11:02:00
不是的,是你不懂怎么’添香‘,haha!我是在Tru64下试的,在终端光打一个echo&aa能有结果,所以偶大胆的估计了一下,这一定8会是echo的问题,^?^,夸偶聪明的说!我也不明白这是怎么回事了,但我保证肯定8是偶书写错误!算了,反正偶不明白的很多很多,在添一个也无所谓!
&nmgzw 回复于: 11:05:54
我刚按红袖姐的笨办法试了一下,8过偶还是很聪明的,只输入了1)&echo&"$c";;&多简单啊,一下子就打印出个1来,哈哈!!
&nmgzw 回复于: 11:31:39
引用:原帖由&"tiansgx"&发表:红袖兄:关于“输入1或2(不用敲回车)就可以运行的话”那段代码,为什么敲回车,也回退出程序,有办法克服吗?还有就是stty的用法,哪里有文档可学习,请指教!tiansgx,怎么样,让偶帮你向我姐求求情?别不好意思说嘛,偶其实比我姐还厉害呢!只不过偶不敢出手,偶要出手,那一定上惊天地、泣鬼神!红袖姐,这么简单的问题,我不便出手,你就帮他一哈么!可别说是我想知道是什么原因啊?没别的意思,我就是想帮助你!
&tiansgx 回复于: 13:16:49
不管你是否出于私心,还是谢谢先
&红袖添香 回复于: 16:18:58
引用:原帖由&"tiansgx"&发表:呜~,红袖偏心,不回答偶的问题是不是偶的嘴不够甜,下次偶吃了糖再来没有呀,是没看见哦~&&引用:原帖由&"tiansgx"]为什么敲回车,也回退出程序,有办法克服吗?&发表:程序里就是这么写的,任意键作相应动作,用回车退出。把&&^M&那句修改一下就行了引用:原帖由&"tiansgx"]还有就是stty的用法,哪里有文档可学习,请指教!&发表:man&stty
&tiansgx 回复于: 09:28:22
谢谢红袖!感动中~~~
&nmgzw 回复于: 09:59:47
看着tiansgx哭了,偶也想哭T_T1.............1..................1.........5wa~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&woodie 回复于: 19:25:22
bash下可以用read:&read&-n1这个大概是bash特有的选项。我只试了linux下的ash/bsh,&tcsh,还有AIX下的ksh,&bsh,&sh,&csh,甚至什么tsh,&psh也试了,都不支持-n选项。:(
&wwwjy2000 回复于: 02:52:11
引用:原帖由&"红袖添香"&发表:说明:^M&的输入方法是&CTRL-V-M&&&&&去掉&stty&-echodd行改为:echo&`dd&&bs=1&count=1&2&/dev/null&`&即可
& 相关主题:Linux下定时执行脚本_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Linux下定时执行脚本
&&Linux下定时执行脚本
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩5页未读,
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 linux脚本执行sql语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信