【Linux的for循环语句】教程文章相关的互联网学习教程文章

linux – Bash虽然读取循环比cat慢得多,为什么?【代码】

一个简单的测试脚本:while read LINE; doLINECOUNT=$(($LINECOUNT+1))if [[ $(($LINECOUNT % 1000)) -eq 0 ]]; then echo $LINECOUNT; fi done当我做cat my450klinefile.txt | myscript CPU锁定为100%,每秒可处理大约1000行.大约5分钟处理cat my450klinefile.txt> / dev / null在半秒内完成的事情. 有没有更有效的方法来实现这一点.我只需要从stdin读取一行,计算字节数,然后将其写入命名管道.但即便是这个例子的速度也很慢. 每1G...

linux – 在Bash中循环浏览文件的内容【代码】

如何使用Bash遍历文本文件的每一行? 使用此脚本:echo "Start!" for p in (peptides.txt) doecho "${p}" done我在屏幕上看到这个输出:Start! ./runPep.sh: line 3: syntax error near unexpected token `(' ./runPep.sh: line 3: `for p in (peptides.txt)'(后来我想用$p做一些更复杂的事情,而不仅仅是输出到屏幕上.) 环境变量SHELL是(来自env):SHELL=/bin/bash/ bin / bash –version输出:GNU bash, version 3.1.17(1)-releas...

linux – 我可以在bash shell中对变量执行for循环吗?【代码】

我正在学习shell,我希望能够遍历一些变量.我似乎找不到任何人做过这个的地方,所以我不确定它是否可能. 基本上我只想通过对每个变量使用相同的sed命令来省去自己的麻烦.但是代码显然不起作用.我的问题是,是否可以循环变量,如果不是,我应该怎么做呢?title="$(echo string1)" artist="$(echo string2)" album="$(echo string3)"for arg in title artist album do$arg="$(echo "$arg" | sed -e 's/&/\&amp;/g' -e 's/</\</g' -e 's/>/...

linux – 如何在Bash中执行并行“for”循环?【代码】

我一直在尝试并行化以下脚本,特别是for循环.我怎样才能做到这一点?#!/bin/bash for i in `cat /root/vms`; do/usr/bin/sshpass -p 'test' /usr/bin/ssh -o StrictHostKeyChecking=no -l testuser $i -t 'echo test | sudo -S yum update -y' done解决方法:更换/usr/bin/sshpass ...同/usr/bin/sshpass ... &

linux – select()内部无限循环在RHEL 4.8虚拟机上使用的CPU比在Solaris 10机器上多得多

我有一个用C编写的守护程序应用程序,目前在Solaris 10计算机上运行时没有已知问题.我正在将其移植到Linux上.我不得不做出微小的改变.在测试期间,它通过所有测试用例.它的功能没有问题.但是,当我在Solaris计算机上“空闲”时查看其CPU使用情况时,它使用了大约.03%的CPU.在运行Red Hat Enterprise Linux 4.8的虚拟机上,相同的进程使用所有可用的CPU(通常在90%范围内的某个位置). 我的第一个想法是事件循环必定出错.事件循环是一个无...

linux – 用于类Unix系统的循环符号链接是什么?【代码】

我正在浏览Linux机器上的目录,在进行详细列表时,我注意到链接指向自身,例如:somelink -> /path/to/directory/somelink我想知道做这样事情的原因是什么?解决方法:如果somelink在/ path / to /目录中,那么这是一个无效的符号链接.如果您尝试访问它,文件系统将给您一个错误(可能类似于太多级别的符号链接*).创建它时可能是一个拼写错误(或其他一些错误),或者符号链接以某种方式被移动并最终链接到自身.

linux – Bash While循环不结束【代码】

我正在玩bash编程.我写了一个简单的bash程序,它接受读者的输入.如果读者输入字符串“bye”,则while循环结束.所以程序非常简单,我写过这样的东西#!/bin/sh inputString="hello" while [ inputString != "bye" ] doecho "Please write something (bye to quit)"read inputStringecho "You typed : ${inputString}" done它一直工作,直到用户一次输入两个单词. 如果用户输入类似的内容bye bye程序崩溃会产生以下错误./WhileLoop.sh: 5:...

linux – 如何在shell中创建一个包含多列的循环?【代码】

我有一个包含三列的文件(ID号,x,y)ifile.txt 1 32.2 21.4 4 33.2 43.5 5 21.3 45.6 12 22.3 32.5 32 21.5 56.3 43 33.4 23.4 44 23.3 22.3 55 22.5 32.4我想在第2列和第3列上做一个循环,这样就可以了for x=32.2 and y=21.4; do execute a fortran program for x=33.2 and y=43.5; do execute the same program and so on虽然我的以下脚本正在运行,但我需要它以有效的方...

Linux shell脚本用于循环错误【代码】

我正在尝试创建一个for循环来删除超过15天的日志文件.以下是我的脚本:#!/bin/sh path="/home/test"logpath="$path/logs" for logfile in `find $logpath -mtime +14 -type f -name *.log` doecho "Deleting Log File: " $logfilerm -rf $logfile done它不断抛出错误:find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression]有任何想法吗?解决方法:请试试这个 – 添加单引号#!/bin/sh path="/ho...

linux – 使VS代码编辑器按Tab键循环选项卡的顺序与它们在屏幕上显示的顺序相同?

当我通过Ctrl Tab键盘快捷键在VS Code中打开选项卡时,下一个要显示的选项卡并不总是当前显示的右侧的下一个选项卡. (我正在考虑环绕;当目前的标签不是最右边时也会发生这种情况)从美学/用户体验的角度来看,这对我来说是一个问题,因为标签更改感觉与gui不同,&它减慢了我的速度. 我很满意一个解决方案,要么使Ctrl Tab遵循屏幕上显示的顺序,要么使显示的顺序遵循Ctrl Tab所使用的顺序.如果您有任何信息,谢谢解决方法:默认情况下,Ctrl ...

linux – Bash:使用单个For In循环迭代2个列表【代码】

假设我有2个单独的循环for file1 in `ls Dir1/` ; doecho $file1 donefor file2 in `ls Dir2/` ; doecho $file2 done我想单循环迭代两个目录伪代码for file1 , file2 in `ls Dir1` , `ls Dir2` doecho $file1echo file2 done可能吗解决方法:假设目录列表中没有IFS阻止字符,具有合适输入的while循环可以完成这项工作.paste <(ls /var) <(ls /usr) | while read e u; do echo $e $u; done

linux – 为什么这个’while’循环不能识别最后一行?【代码】

我们使用以下脚本:more test.sh #!/bin/bashwhile read -r line doecho $linedone < /tmp/file这是文件:kafka-broker,log.retention.hours,12 kafka-broker,default.replication.factor,2 fefolp-defaults,fefolp.history.fs.cleaner.interval,1d fefolp-defaults,fefolp.history.fs.cleaner.maxAge,2d fefolp-env,fefolp_daemon_memory,10000 blo-site,blo.nodemanager.localizer.cache.target-size-mb,10240 blo-site,blo.node...

linux – 如何将ms-dos分区表添加到循环设备?【代码】

我最近从磁盘分区创建了一个dd.我想将它用作虚拟机中的磁盘.我不能因为磁盘没有分区表. 我可以为循环设备分区表吗?怎么样? apparently a similar question exists here. 如果有人知道如何在不重复所有数据的情况下做到这一点,那就太棒了. 我做了dd if = / dev / sda1 of = myfile 我无法复制完整的sda磁盘,因为它太大了.解决方法:如果您仍有原始驱动器,则删除该图像并使用以下命令再次创建:dd if=/dev/sda1 of=myfile bs=512 se...

linux – 循环移动文件【代码】

我有文件名file_1_supply.csv file_2_supply.csv file_3_supply.csv ....... file_30_supply.csv我想在Linux中将这些文件从一个文件夹复制到另一个文件夹.问题是目录中还有许多其他文件.我想通过命令行来完成它,因为该目录有很多文件.cp file_1_supply.csv /home/user/destination通常我用它来复制但如何在循环中使用它?解决方法:如果您只想复制file_1-file_30:cp file_{1..30}_supply.csv /home/user/destination

在Linux下使用循环安装映像的开销

使用循环安装映像与使用Linux下的物理分区相关的CPU / RAM开销是否存在?解决方法:是的,除非你有一个非常新的内核,在linux上使用循环设备时会有很大的开销:通过循环设备访问的数据必须经过两个文件系统层,每个层执行自己的缓存,因此数据最终缓存两次,浪费了大量内存(臭名昭着的“双重缓存”问题) 除了随意使用之外,更好的选择是使用专用分区或chroot,以便可以直接访问数据. 或者使用最新的内核,问题在linux 4.4 and newer中修复:...