草庐IT

take_while

全部标签

linux - 如何在 while-loop 读取行中读取用户?

我有一个bash文件,它提示用户输入一些参数,如果没有给出则使用默认值。然后脚本继续使用参数执行其他一些命令。这很好用——在最近添加之前没有问题。在尝试从txt文件中读取NAMES参数时,我添加了一个while循环来获取文件中的名称,但我仍然希望提示输入其余参数。但是一旦我添加了while循环,输出就会在get_ans()中显示打印的提示并且不会暂停读取,因此所有默认值都被选中。我想从文件中读取第一个参数,然后从提示用户读取所有后续文件。我通过添加while循环破坏了什么?catlist.txt|whilereadlinedoget_ans"Name""$line"readNAME$t

Linux 外壳 : remove all HTML files in tree while leaving directory structure

我正在尝试从目录generated和那里的所有子文件夹中删除所有.html文件,但它需要单独保留所有其他文件和目录。我尝试逐个文件夹浏览并运行rm*.html但这需要很长时间,因为有20多个子文件夹也有子文件夹。我尝试查找rm的手册页,但没有发现任何明显的内容。我敢肯定有一种方法可以一次做到这一点,但我不知道怎么做。有什么想法吗? 最佳答案 我认为这可能有效:cd生成找到.-typef-iname"*.html"-delete 关于Linux外壳:removeallHTMLfilesin

linux - 从 while 循环中退出 shell 脚本

我正在编写一个简单的shell脚本,如果在文件中找到输入字符串,则应该以0退出,否则以1退出INPSTR=$1cat~/file.txt|whilereadlinedoif[[$line==*$INPSTR*]];thenexit0fidone#stringnotfoundexit1实际发生的是,当找到字符串时,循环退出,然后shell转到“exit1”。在循环中完全退出shell脚本的正确方法是什么? 最佳答案 您需要通过避免管道和不必要的cat来避免在脚本中创建子shell:INPSTR="$1"whileread-rlined

linux - 使用 while 循环时的 Bash 退出状态

这个问题在这里已经有了答案:Howtogettheexitstatusaloopinbash(8个答案)关闭6年前。我有一个bash脚本,它遍历一个ip列表并一个一个地ping它们。如果每个ping的退出状态为0,则回显节点已启动,否则节点已关闭。我能够让它完美地工作,但是当bash脚本结束时,退出状态始终为0。例如,如果第3个失败,我想要实现的是5个ip,继续遍历列表并检查其余部分,但是一旦脚本结束,就会抛出0以外的退出状态并输出哪个ip失败。catlist.txt|whileread-routputdoping-o-c3-t3000"$output">/dev/nullif[$?-

c++ - Linux : Qt Creator debugger hangs while QQmlApplicationEngine is created

我在Linux上的QtCreator中调试qt快速天气示例,调试器在执行以下代码时挂起:QQmlApplicationEngineengine(QUrl("qrc:/weatherapp/qml/main.qml"));调试器日志不断显示:QMLDebugger:Noapplicationoutputreceivedintime,tryingtoconnect...我在ArchLinuxx64上使用QtCreator3.1.1。 最佳答案 这似乎是Qt中的一个错误(有关详细信息,请参见下图)。作为临时解决方法,您可以禁用QML调试,

python -c 和 `while`

如果您使用python-c启动脚本,是否可以在while中循环?这似乎与平台或python版本无关......Linux[mpenning@Hotcoffee~]$python-c"importos;while(True):os.system('ls')"File"",line1importos;while(True):os.system('ls')^SyntaxError:invalidsyntax[mpenning@Hotcoffee~]$[mpenning@Hotcoffee~]$python-VPython2.6.6[mpenning@Hotcoffee~]$uname-aLi

linux - Bash 脚本中的 While 循环?

我不习惯编写Bash脚本,谷歌也没有帮助找出这个脚本有什么问题:#!/bin/bashwhilereadmylinedodoneecho"Hello"whilereadlinedodoneexit0我得到的输出是:./basic.agi:line4:syntaxerrornearunexpectedtoken'done'./basic.agi:line4:'done'我的bash版本是:GNUbash,version3.2.25(1)-release(i686-redhat-linux-gnu)谢谢。编辑:当while循环不为空时,脚本可以正常工作。当我在做的时候...我希望在用户什么

c++ - eclipse CDT : 'can' t find a source file' while debugging

我使用Eclipse和CDT进行C++开发。但是,我不得不在源文件的路径中使用ASCII符号来成功调试我的程序。当源文件位于名称中包含非英文字符的文件夹中时,Eclipse会报错:Can'tfindasourcefileat"/home/\321\202\320\265\321\201\321\202/1.cpp"Locatethefileoreditthesourcelookuppathtoincludeitslocation.是否有任何选项可以让Eclipse进行正确的Unicode处理? 最佳答案 也许将您的代码移动到位于根目

linux - 为什么 unix while read 不读取最后一行?

这个问题在这里已经有了答案:Shellscriptreadmissinglastline(7个答案)关闭3年前。我的脚本exportIFS=":"cathello|whilereadabcd;doecho$a,$b,$c,$ddone我的文件你好1:1:1:12:2:2:23:3:3:3我的输出1,1,1,12,2,2,2如果我在hello中的3:3:3:3之后放一个空行,那么输出就变成了1,1,1,12,2,2,23,3,3,3有谁知道如何解决这个问题,这样我就不需要在hello末尾放一个空行了吗?

python - Letsencrypt 导入错误 : No module named interface on amazon linux while renewing

今天,当我尝试使用此命令更新我的证书时,我遇到了错误/opt/letsencrypt/letsencrypt-autorenew--config/etc/letsencrypt/config.ini--agree-tos&&apachectlgraceful也试过这个命令/opt/letsencrypt/letsencrypt-autorenew错误:Traceback(mostrecentcalllast):File"/root/.local/share/letsencrypt/bin/letsencrypt",line7,infromcertbot.mainimportmainFi