【linux – 这个简单的bash命令有什么问题?】教程文章相关的互联网学习教程文章

Linux基础-Bash简介【代码】

[root@oldboyedu ~]# who root tty1 2018-08-08 18:51 root pts/0 2018-08-08 17:57 (10.0.0.1) root pts/1 2018-08-08 18:51 (10.0.0.1) root pts/2 2018-08-08 18:51 (10.0.0.1) test1 tty2 2018-08-08 18:55 test2 tty3 2018-08-08 18:55 test3 tty4 2018-08-08 18:55 [root@oldboyedu ~]# w 18:59:36 up 1:03, 7 users, load average: 0.01, 0.03, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 18:51 2:16 0.04s ...

linux-在bash脚本中添加数字表示“未找到”【代码】

我正在用Vim编辑器为操作系统基础知识类制作bash脚本,并且遇到一个极其简单但令人沮丧的错误,我无法将变量加在一起并将总和设置为另一个变量.我尝试了多种格式来完成此操作,但是它要么打印出每个值,要么显示“:未找到”错误.这是我到目前为止的代码,我只是想将每个测试的值之和设置为变量“ finalgrade”,然后输出输出.echo "Enter assignment mark (0 to 40): " ; read assignment echo "Enter test1 mark (0 to 15): " ; read ...

linux常用的bash指令

文本处理 awk 格式化 sed 编辑 grep 筛选 sort 排序 uniq cat cut echo fmt tr nl egrep fgrep wc 进程监视 ps top htop atop lsof 网络 nmap tcpdump ping mtr tracerote airmon airodump dig iptables 系统性能 nmon iostat sar vmstat 编译源码 gcc make 其他 strace dtrace systemtop uname df history

linux-在Bash中显示长时间运行的应用程序的进度【代码】

我有一些涉及嵌入式系统更新的程序,它们需要按顺序运行,并且需要向单独的系统报告进度. 这些阶段是: >验证图像;>将映像文件解压缩为活动磁盘上的文件;和>将映像安装到备用磁盘. 之后,计算机将重新启动,备用磁盘将变为活动磁盘. 目前,我们报告的初始值为0%,验证结束时为5%,拆包结束时为45%,安装结束时为90%.重新启动后,当新映像开始运行时,将报告100%标记. 现在,尽管我对这种方法感到非常满意,但客户端希望看到更细粒度的更...

Linux ssh bash fork重试:无子进程

我在arch linux上,通过SSH访问服务器上的帐户.我运行了一个包含递归的bash脚本,该脚本导致“没有这样的文件或目录”的无限循环,尽管有任何中断命令ctrl C等,该循环仍将继续,这是完全不间断的.最终这将导致不计其数的bash流:fork:没有子进程.在发生这种情况时,我无法执行任何命令,并且在“资源暂时不可用”停止时,我无法执行任何命令来杀死脚本,因为“ bash:fork:无子进程”再次启动.我不知道该怎么办,有帮助吗? ps doesn’t w...

Linux-bash:4096个字节后,read丢弃终端行输入【代码】

为了演示此问题,请在Linux中运行此命令后粘贴一个长字符串(> 4096字节):read foo && wc -c <<<"$foo"结果为4096,表示输入被截断. Some research表明存在一个终端行缓冲区大小,硬编码为4096,这说明了截断.但是,当我尝试使用-n选项进行读取时,它可以工作:read -n 32768 foo && wc -c <<<"$foo"结果是输入的实际长度(1,但这是由于这里字符串引起的),而不是4096. 因此,我想知道-n 32768选项的作用是什么.我没有在bash手册页中找到与此...

linux-如何从提供其他Bash脚本的任何目录Bash脚本执行(不使用路径变量)【代码】

我不尝试通过将脚本添加到我的Path变量来从任何目录执行Bash脚本. 我希望能够使用该文件的目录路径从任何目录执行脚本……但是我要执行的文件源于其他文件,这就是问题所在. 如果我在带有两个脚本myFunctions.sh和sourceFunctions.sh的目录文件中 sourceFunctions.sh#!/bin/bash source ./myFunctions.sh echoFoomyFunctions.shfunction echoFoo() {echo "foo" }我可以运行myFunctions.sh,并且foo将打印到控制台,但是如果我进入目录...

linux-bash中的shell脚本可从ftp服务器下载文件【代码】

我必须为bash shell编写一个shell脚本以从ftp服务器传输文件给定ftp服务器-fileserver@example.com用户user1密码pass1 现在在ftp服务器的/ dir1 / dir2中,我有以下格式的文件夹0.7.1.700.7.1.710.7.1.72 在这种情况下,我必须从最新文件夹(即0.7.1.72)复制文件“ file1.iso”.我还必须在复制时检查文件的完整性,即假设文件正在上传到服务器,并且在那个时候如果我开始复制,则复制将无法完成. 我必须每4个小时做一次.这可以通过将其作...

linux-将我的bash命令转换为bashrc函数并传递参数【代码】

我有一个不错的bash命令,可以在文件和文件路径中找到关键短语thanks to @ezod here.我试图将其转换为bashrc中的一个函数,但不会产生相同的结果.我猜想这与我需要转义或使用其他方法的背对背花括号有关? 作品:{ find . -name '*keyword*'; grep -irl 'keyword' .; } | sort -u在bashrc中不起作用:function findit() {{ find . -name '*$1*';grep -irl '$1' .;} | sort -u } export -f findit$findit keyword解决方法:Bash不会用单...

linux-使用bash将带有空格的字符串作为git commit消息发送【代码】

我正在创建一个更新git分支的bash脚本,一切正常,但是现在我想添加选项以将提交消息指定为参数. 我首先使用了以下命令:echo "Executing git commit..." git commit -m "$1"但是当我发送这样的东西:$git.sh "testing commit message"我收到一堆错误,告诉我git无法识别该命令. 我想在这种情况下,我添加的双引号不会将参数作为单个字符串传递,而是将其传递为多个字符串,因此-m选项仅将第一个作为参数传递,而git尝试将其他参数作为提交...

linux-如何在bash脚本和Matlab之间传递变量【代码】

例如在Matlab中,我有一个字符串x =’foo’,所以我想在bash脚本中使用它.或者我在bash脚本中有x = $’foo’,所以我想在Matlab中使用x.有没有办法做到这一点?解决方法:我无法告诉您有关matlab的信息,但是在Octave中,一切都很简单. 例如,要将bash变量传递给八度,只需执行以下操作:Xmax=10; echo "x=[1:$Xmax]; sin(x)" | octave -q ans =Columns 1 through 8:0.84147 0.90930 0.14112 -0.75680 -0.95892 -0.27942 0.65699 ...

linux-bash:如何从文件中提取数千行非顺序行【代码】

我有一个包含数百万行的文件.我也有一个行号列表,几十万个是非顺序的,没有模式.我想用行号列表提取文件??的行.如何在Linux中有效地实现这一目标?解决方法:如果您在文件中有行号列表,那么使用awk可以执行以下操作-awk 'NR==FNR { a[$1];next } (FNR in a)' line_number_list.txt bigfile.txt测试:$cat bigfile.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10$cat line_number_list.txt 1 2 4 5 8 9$awk 'NR==...

linux-Bash:“完成”意外(预期“ FI”)【代码】

当我尝试运行脚本时出现以下错误Bash : "done" unexpected (expecting "fi")我尝试了bash和dash,我得到了相同的错误.topip4="false" topip6="false" topurl="false" for par in "$@" ; doif [ "$par" == "-topip4" ] ; thentopip4="true"else if [ "$par" == "-topip6" ] ; thentopip6="true"else if [ "$par" == "-topurl" ] ; thentopurl="true"fi done解决方法:如果更改为elif,请更改其他.

linux-使用Bash脚本进行多线程编程【代码】

我正在像这样运行bash脚本:for i in {0..3250000..50000}dowget "http://xxx/select?q=*:*&row_size=50000&start=$i" -O $i.csvdone每次发送请求时,我都必须等待完成并写入文件,然后继续循环.但是我想异步地做.我的意思是,它将发送请求并循环,而无需等待响应.但是,当响应出现时,它将做正确的事情. 我怎样才能做到这一点?解决方法:您可以使用xargs:printf '%s\0' {0..50000..3250000} |xargs -0 -I {} -n 1 -P 20 wget 'http...

Linux-尾部未在bash脚本中提供输出【代码】

我已经写了一个bash脚本,它将过滤“ tail”输出,整个命令tail -f /var/log/asterisk/messages | awk 'match($12, /[^0-9]91([0-9]{10})@default/, a) {print a[1]}'从CLI可以正常工作,但是放在bash脚本中则不能:#!/bin/bashphonenumber=$(tail -f /var/log/asterisk/messages | awk 'match($12, /[^0-9]91([0-9]{10})@default/, a) {print a[1]}')echo "$phonenumber >> test.log"它不输出任何内容,(2135551234,是预期的输出字符串...