linuxfor跳过
‘壹’ 如何在c语言中跳出for循环
在C语言中可以使用break,和return语句结束循环
代码示例 break
i>3的时候结束循环;
用return语句(一般用在函数体中,作为函数的返回值跳出该函数,也即跳出了函数体中的for循环)
intfun(inta){inti;for(i=0;i<a;i++){if(i>3)//如果i>3,则函数执行完毕,并返回变量i的值,也即跳出了for循环returni;}}拓展资料
C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。
C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐,成为最近25年使用最为广泛的编程语言[2]。目前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言的标准。二十世纪八十年代至今的有关程序开发工具,一般都支持匹配ANSI C的语法。
C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX。
‘贰’ linux shell关于for循环的问题
你在for循环中已经做了b++的自增 然后又在倒数第3行又做了一遍b++
等于一次循环做了2次自增 所以你的结果才会这样
将倒数第3行注释掉 或者去掉就可以了
‘叁’ Linux for 命令中看到 i=1;i<=10;i++ , i++是什么意思啊
i=1;i<=10;i++
第一个赋值 i=1,
第二个循环条件i<=10。
第三个,每执行一轮i+1 ,直到不满足循环条件i<=10
跳出循环
‘肆’ 如何直接安装linux系统,不用cd 盘
如何在没有光驱、没有软驱、不能usb启动的情况下,进入dos硬盘安装linux系统?(当然,前提是已经有一个windows系统)
最近又被派发做安装系统的烂事。师兄竟然说之前安装的linux太新(gcc太新),他的程序跑不过(昏,写程序还挑编译器的毛病),让我装个旧的。为了省事,我想直接在原来的redhat enterprise server 5上编译一个gcc3.3,结果花了半天时间都搞不过,似乎网上也没有成功的例子。最终还是决定再装一个redhat 8了。
最让人郁闷的是要装系统的服务器光驱坏了。本来一开始是好的,后来装到一般竟然挂了,不仅读不出内容,甚至都不能弹出光盘。最后不得不用暴力的方法,用小刀强行扒开才取出光盘……真是郁闷的不得了。
装系统最主要的装备没了,现在只能考虑软驱启动或usb启动了。但是服务器比较老,估计还不支持usb启动,软盘现在更是找不到了。在这种状况下怎么装系统呢??
我想寻求一种纯硬盘安装系统的方法。我知道很多系统可以硬盘安装,但是都需要用光驱或usb或软驱启动进入dos,不过这些条件我都没有。其实主要只是要进入dos环境,后面装系统就是很容易的。
首先,如何在“三无”的情况下启动进入dos? 想想一个小破dos嘛,应该有不用大费周章必须用光驱软驱usb才能进入的吧。果然让我找到了这样的软件:矮人XP2K纯DOS模式 2.0.安装之后启动菜单会多出一个启动进入dos的项。嗯,真是个好东东,这样后面的问题就迎刃而解了。
后面就是硬盘安装的问题了。因为光驱不能用,有光盘也做不了镜像,只能找网上去下,速度慢了还不行(急着要装,我也没闲工夫等)所以系统镜像文件也是个问题。后来花了半天才找到一个现在速度比较快的ftp(1Mbps),下载了三个系统iso文件。
好,调研了半天,现在开始装了。
1、在windows下安装软件“矮人XP2K纯DOS模式 2.0”。
2、下载系统的iso文件,放在windows的任意一个分区里。最好放在fat32格式的分区中(因为dos本身是不支持ntfs分区的,不过矮人XP2K纯DOS模式 2.0好像可以)且放在分区的根目录下,如D:\xxxxxx1.iso等,这样后面安装起来就省去了很多麻烦。
3、将个iso镜像中的dosutils目录提取出来(用虚拟光驱或winrar也可以),放到某个分区的根目录下,如D:\dosutils.
4、分区
可以预先用pqmagic等工具为要装的linux分好区(一个swap分区和一个ext3分区是必要的);也可以在系统安装的过程中自己手动分区。我喜欢用后者,不过如果不了解linux分区的就最好不要使用后一种方法。
安装前的准备知识:
linux硬盘分区的名称:第一块硬盘叫/dev/hda,第二块叫/dev/hdb,以此类推。第一块硬盘的第一个分区叫/dev/hda1,第二个分区叫/dev/hda2,以此类推。不过因为主分区个数最多可以为四个,因此windows中对应的D盘(第一个硬盘的第1个逻辑分区)在linux下并不叫/dev/hda2,而是/dev/hda5.(即/dev/hda1到/dev/hda4看作是主分区的)。
5、安装
重启系统进入“矮人XP2K纯DOS”;
cd D:\dosutils
运行 autoboot.bat
之后就是一般的系统安装,不同的就是硬盘安装的过程不是图形界面,这就无所谓了。
系统安装好后,发现默认没有安装开发工具,比如make、gcc等,昏,只有再从镜像文件里安装了。linux下没有虚拟光驱一说,因为linux的mount本身就可以完成很多任务,包括将光盘制作成光盘镜像文件,以及将镜像文件加载到光驱(即所谓的虚拟光驱)。方法也很简单:
a. 把光盘制作成 iso 文件:
cp /dev/cdrom /*/XXXXX.iso
b.将硬盘上的 iso 文件加载到光盘(即所谓的虚拟光驱):
mount -t iso9660 -o loop /*/XXXXX.iso /mnt/iso
c.若添加删除程序,系统会提示你插入光盘,但只有镜像,怎么办?
对于 Redhat : redhat-install-packages ——isodir=iso 文件目录
d.一般情况虚拟光驱
rm -rf /dev/cdrom
ln /dev/loop7 /dev/cdrom
losetup /dev/loop7 /*/XXXXX.iso
mount /mnt/cdrom
取消这个光驱:
losetup -d /dev/loop7
换盘:只需转移iso关联到/dev/loop
losetup /dev/loop7 /*/XXXXX.iso
注:/*为路径
http://linux.chinaitlab.com/set/736062.html
方法2:
自从装上Vmware3.0并发现它可以直接向物理硬盘写数据之后,从网上download下来的iso发行版,如果不支持象redhat那样不用解开iso,做一张启动盘就可以从硬盘安装的,我全都采用下面的方法安装,很是方便,在Linux版本不断升级的今天,采用此法既可以节约一大笔介质费,又可以对付那些没有能力或故意不提供从硬盘安装途径的发行商,一石二鸟,很是痛快!
安装方法:
硬件环境:CPU: PIII以上
memory: 128MB以上
我的机器(毒龙800,256MB)
软件环境:Mandrake Linux8.1,
Suse Linux 7.3,
其他可以装上Vmware3.0的发行版,
Windows NT/2K/XP;
Vmware3.0 for Linux,for Windows XX.
liceses 可到www.vmware.com上注册一个试用的,
Vmware3.0 for Windows XX已有破解工具了,在网上搜索 一下就可找到。
1. 安装Vmware3.0;
参考其它文章吧,很简单的,一分钟就可搞定!
2. 建Vmware虚拟机,使用iso文件设置虚拟光驱;
运行vmware,建立一个Linux环境虚拟机,在选择硬盘时选择使用物理硬盘(真正的硬盘,不是虚拟硬盘),并允许可写全部分区(不用担心,只要你在虚拟机中不选择删除或格式化主操作系统所占的分区和改变主系统分区序号(hdax)就不会把主系统弄死);
用配置向导工具建好虚拟机后,改变光驱设置,默认是采用物理光驱,改为采用iso文件虚拟光驱,选中你要安装的Linux发行版安装启动光盘iso文件,确认退出便可开虚拟机了;
开机后,按F2设置系统从光盘启动,便可利用虚拟机在物理硬盘上安装系统了;
当Linux系统安装要求插入第二或更多光盘时,只需从Vmware菜单中选择设备设置,将光驱连接的iso文件改为对应的光盘iso文件,确认进入虚拟机便可继续安装;
剩下的就不用费话了,把你的系统安装完成,然后关闭你的vmware虚拟机,再reboot你的主机,选择或利用其它的引导工具(如:BootMagic)或软盘引导进入系统(根据Linux安装时选择的引导方法而定),经过一番设置便大功告成!
3. 安装过程中有以下几点需要注意:
a. 硬盘分区
由于直接对运行主操作系统的硬盘操作,具有一定的风险性,所以我结合自己硬盘的分区方案把要注意的问题强调一下。
hda1---Win98,hda2---Solaris X86 boot,hda3---Solaris分区,
hda4---逻辑分区
hda5--- Linux Swap,hda6---Mandrake分区,hda7--Redhat分区,hda8--预留的Linux分区(暂存放Linux一般数据,要安装其它系统时可删除重建),hda9---Windows 2000(ntfs),hda10---数据存储盘(fat32)
现在我以Mandrake8.1(hda6)为主操作系统启动虚拟机开始安装放在hda10的5个iso文件的Suse Linux 7.3,启动进行到Linux分区步骤,删除hda7,hda8,重建hda7为ext3,/boot,重建hda8为ext3,/,确认安装至完成,顺利安装成功,这里要注意的是不要改动hda5,hda6,5,6序号都不能变,比如你不能在5,6之间新建一个分区,使之变为hda5,hda6,(hda6->)hda7,最好在后面追加,不改动前面的分区。
另如:从Window2000(hda9)启动安装TurboLinux7.0,删除hda7,hda8,只重建hda7为ext3,/,安装成功,这时hda9->hda8,hda10->hda9,对Windows2000的引导有影响,要更改C:\boot.ini,将引导分区数字减1,就不会有问题了。
b. 系统引导问题
在虚拟机安装系统采用何种方式引导时,最好不要采用写mbr方式,也不是不行,因为我没试过,所以不敢乱说,推荐采用安装到系统自己的boot分区的方式,并在安装过程中制作系统引导软盘,双保险嘛!
c. X服务配置问题
由于虚拟机检测不到你机器真正的显卡,所以安装系统时你可以跳过或配置为最低的VGA 640x480模式,并选择不采用图形登录;重启系统后在命令行下用系统相应的XF86工具进行配置(Redhat7X--setup,SuseLinux7.3--SaX2,Mandrake8.1--xf86config),不同的发行版提供的专用工具不一样,自己找一下吧,找不到就用xf86config或直接改XF86config文件吧,只要进了图形界面很容易就发现配置工具了,再调整也不迟。有的发行版本在安装时可能没有把你的显示配置需要的驱动模块完全加载,这时需要从iso文件中把其取出来单独安装,Mandrake8.1就有这种情况。
d. 硬件设置问题
由于虚拟机检测到的声卡,网卡等设备都是虚拟的,所以在你重启机,进入你利用虚拟机安装的Linux系统后,应使用系统提供的设置工具重新检测设置。
e. 安装速度问题
机器配置越高,划给虚拟机的内存越大,安装的时间越短;有的系统不能采用图形安装(turbolinx7,XteamLinux4),有的却可以(Mandrake8.1,SuseLinux7.3),建议都采用文本模式安装,这样可以大大缩短安装时间。
4. 这篇文章主要针对那些机器有较好的配置,又没有刻录机或根本就不想刻盘总想从硬盘安装系统的朋友;由于这段时间比较忙,对Vmware的安装使用及Linux具体的可能碰到的问题写的不够详细,对没有使用过Vmware
和不熟悉Linux系统安装过程的朋友,建议先多看一些相关资料再安装,以免把系统破坏或把硬盘的数据弄丢了。
祝各位好运,安装一路顺风!
http://linux.sheup.com/linux/linux7042.htm
‘伍’ linux shell 跳过read命令,怎么解决
read默认从标准输入读取数据,而这里的管道符会将前面ls命令的结果作为标准输入传递给read命令。所以只要前面还有数据,read命令就不会等待用户输入。
其实,这里可以用 for ... in ... 结构来替代while循环。
forl1in`ls$d1`
do
read-p"1or0"y1
......
done
‘陆’ linux的for循环的写法
#可以使用正则表达式。
#写个简单脚本测试一下:
#!/bin/sh
centernumber=123
while [ $centernumber=[:digit:*] ]
do
echo "a"
sleep 1
done#执行结果如下:
希望可以帮助到你!
‘柒’ linux c 如何实现eof或换行强制跳出循环
p传过来的是 char** ,表示指向指针的指针,所以p=='\0'报错, 可改成p[m][0]或*p[m]
‘捌’ Linux:关于脚本for循环的执行顺序
执行一次,for in 后边的`` 或 $() 会产生一个list。然后依次读取。
‘玖’ linux for 循环问题!!!
两种方法实现:
脚本:
#!/bin/bash
for i in $(seq 30);
do
if [ $i -lt 10 ] ;then
mkdir '0'$i
cp '0'$i* '0'$i/
else
mkdir $i
cp $i* $i/
fi
done
mkdir 00
cp 00* 00/
#end
C语言:
#include<stdio.h>
int main()
{ char cmd[64];
int i;
for(i=0;i<30;i++){
sprintf(cmd,"mkdir %02d\n",i);
system(cmd);
}
for(i=0;i<30;i++){
sprintf(cmd,"cp %02d* %02d/\n",i);
system(cmd);
}
return 0;
}
‘拾’ Linux shell编程 ---- 循环结构
linux
shell编程
----
循环结构1
for循环
1
for循环是linux
Shell中常用的结构,for循环有三种结构;一种是列表for循环,第二种是不带列表的for循环,第三种是类C风格的for循环。
2
列表for循环
for
variable
in
list
do
statement
done
3
不带列表for循环
for
variable
do
statement
done
4
类C风格的for循环
for
((
expr1;
expr2;
expr3
))
do
statement
done2
while循环
1
while循环的结构
while
expression
do
statement
done
3
until循环
1
在执行while循环的时候只要expression的退出状态为0,将一直执行循环体。until命令和while命令类似,但区别是until循环中的expression的退出状态不为0的时候循环体将会一直执行。
2
until的结构
untile
expression
do
statement
done
4
循环控制符号
1
break语句可以应用在for,while和until循环语句中,用于强行循环,也就是忽略循环体中任何其它语句和循环条件的限制。
2
continue循环控制符应用在for,while和until语句中,用于让脚本跳过后面的语句,执行下一次的循环。