草庐IT

BASH_SOURCE

全部标签

linux - 用于调用 bash 命令的文本编辑器模式

假设我想通过bash输入一个多行命令,我知道我可以在该行的末尾附加\以输入一个新行然而,是否有可能进入合法的“文本编辑器模式”,您甚至不必输入\而只需按enter就足够了例如..你在命令行中输入命令然后在输入参数之前你按下一些魔法按钮允许你进入类似vi的模式然后你输入东西进入“vi模式”然后你退出然后你在“vi模式”下输入的文本变成命令的参数然后你回车然后命令执行是否可以在bash命令行中执行此操作?如果是这样,我该怎么做? 最佳答案 参见manbash:edit-and-execute-command(C-xC-e)Invokea

linux - 使用 bash shell 脚本在 2 个字符串之间提取字符串

我见过类似的问题,但在这种情况下似乎没有任何解决方案有效。我有一个看起来像这样的文本文件START-OF-FILERUNDATE=20140910FIRMNAME=dlFILETYPE=pcREPLYFILENAME=TESTDERIVED=yesPROGRAMFLAG=oneshotSECID=ISINSECMASTER=yesPROGRAMNAME=getdataSTART-OF-FIELDSISSUERSTART-OF-DATAUS345370CN85|0|4|FORDMOTORCOMPANY|FORDMOTORCOMPANY|||US31679BAC46|0|4|FIFTHST

linux - Bash 读取用户 y/n 答案不起作用(在循环读取查找输出时读取内部命令)

我这里有个问题。似乎我的Bash脚本忽略了do和done之间的所有内容。不知道为什么,也许你会看到问题。提前致谢。katalogas=$1find$katalogas-typef-mtime+3|whileread$failaidoread-p"Runcommand$foo?[yn]"answerif[[$answer=y]];thenrm$failaifidone 最佳答案 尝试替换read-p"Runcommand$foo?[yn]"answer通过read-p"Runcommand$foo?[yn]"answer避免从标准输入

linux - Bash - 如何使用 printf 打印多行字符串(带有 '\n' )

我正在尝试以这种方式在printf中打印多行字符串printf"hi\n"printf"nextlinehere\n"我不能做以下事情text_content="hinextlinehere"printf$text_content还有其他办法吗? 最佳答案 引用变量应该可以解决问题。但是,在您的示例中,您得到了双换行符。printf"$text_content" 关于linux-Bash-如何使用printf打印多行字符串(带有'\n'),我们在StackOverflow上找到一个类似的

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[$?-

linux - 如何在 bash 中对逗号分隔值进行排序?

我有一些数字,比如7、15、6、2、-9我想在bash中像这样排序(从命令行或脚本文件)-9,2,6,7,15我该怎么做?我无法使用sort命令获取它。 最佳答案 echo"7,15,6,2,-9"|sed-e$'s/,/\\\n/g'|sort-n|tr'\n'','|sed's/.$//'sed-e$'s/,/\\\n/g':用逗号将字符串分成多行。sort-n:然后你可以使用按数字排序tr'\n'',':将换行符转换回逗号。sed's/.$//':删除尾部逗号。不够优雅,但应该可以:p

linux - BASH:如何询问用户输入并存储它以备将来使用?

我想在bash程序中存储一条用户消息,然后在用户下次运行该脚本时显示该消息。我认为这可能起作用的一种方法是,如果我将消息导出到环境变量,但我无法让它起作用。这是我目前拥有的,但它不起作用:echo"Lastmessagewas:$KEEPTHISMESSAGE"echo"Typethenewmessagethatyouwanttoenter,followedby[ENTER]:"readKEEPTHISMESSAGEexportKEEPTHISMESSAGE我做错了什么?如果有更好的方法来做到这一点,请告诉我。也许保留一个文件来保存这些消息的历史记录并获取最新消息?

linux - Bash 模式匹配

我正在尝试使用模式匹配来查找目录中扩展名为.jpg或jpeg的所有文件。ls*.[jJ][pP][eE][gG][eE可选? 最佳答案 更加努力地匹配。ls*.[jJ][pP]{[eE],}[gG] 关于linux-Bash模式匹配,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7805732/

linux - bash 将输出存储为变量

grep-A26"sometext"somefile.txt|awk'/othertext/{gsub(/M/,"");print$4}'|sort-n-r|uniq|head-1将从大型文本文件中提取的列表中返回最大的,但如何将输出存储为变量? 最佳答案 使用commandsubstitution:my_var=$(grep-A26"sometext"somefile.txt|awk'/othertext/{gsub(/M/,"");print$4}'|sort-n-r|uniq|head-n1)此外,为了可移植性,我建议始终使用

linux - 来自 vim 的 Bash 命令

当我从vim内部运行bash命令时,我注意到路径全错了。我的.vimrc内部有没有办法让它加载我的.bash_profile或只是从它启动的终端继承PATH和别名设置? 最佳答案 如果您将shell定义为交互式,vim将加载您的.bashrc或.bash_profile。默认不加载。这可以通过以下方式完成::setshellcmdflag=-ic默认只有-c,:hshellcmdflag查看详情。当然你可以将它添加到你的.vimrc文件中。 关于linux-来自vim的Bash命令,我们