【linux – bash脚本和zsh shell中的数组行为(开始索引0或1?)】教程文章相关的互联网学习教程文章

Linux-为什么超时在bash脚本中不起作用?【代码】

如果进程超过几秒钟,我试图终止该进程. 当我在终端中运行以下代码时,它的工作就很好.timeout 2 sleep 5但是当我有一个脚本时-#!/bin/bash timeout 2 sleep 5它说timeout: command not found为什么这样?解决方法是什么?– 编辑 – 在执行类型超时时,它说-timeout is a shell function解决方法:看来您的环境$PATH变量不包含/usr/bin /路径,或者其他地方可能存在超时二进制文件. 因此,只需使用以下命令检查超时命令的路径:command...

linux-下载文件并从Bash脚本文件解压缩【代码】

我正在下载文件,然后将其从Bash脚本文件解压缩.#!/bin/sh wget -N http://example.com/file.zip unzip -o file.zip有没有办法检查wget是否实际下载了新文件?例如,如果file.zip的远程版本与本地版本相同,它将不会检索该文件.如果wget实际上检索到一个新文件,我只想解压缩该文件.解决方法:您应该检查返回值和wget的输出,以确定是否已下载文件:out=$(wget -qN 'http://example.com/file.zip' 2>&1) [[ $? -eq 0 && $out ]] && unzip...

linux-在bash脚本中分组时Shell命令不起作用【代码】

我有这个文件:file.txt:4003f0: 48 83 ec 08 sub $0x8,%rsp4003f4: e8 73 00 00 00 callq 40046c我正在尝试从中间提取操作码.首先,我在操作码(sub和callq)之后搜索第一个元素:get_asm_index.awk: BEGIN {i_min = 1000000; }{i = match($0, /[^ :0-9a-fA-F]/)if(i < i_min)i_min = i; }END {print i_min; }之后,我打印操作码:get_hexdump.awk: {i = match($0, /[:]/);print substr($0, i+1, i_min...

如何在Alpine Linux中使用bash脚本?【代码】

我对使用wait-for-it使用基于Alpine Linux发行版的映像在Docker-Compose中使一项服务等待另一项感兴趣. 但是,如果我克隆“等待”存储库并添加以下Dockerfile,FROM alpine RUN apk --update add bash COPY wait-for-it.sh wait-for-it.sh CMD ["./wait-for-it.sh", "www.google.com:80"]然后我使用docker build –tag waitforit来构建它.其次是docker run waitforit,但我收到此错误消息:timeout: can't execute '15': No such file...

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

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

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脚本和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脚本进行多线程编程【代码】

我正在像这样运行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,是预期的输出字符串...

Linux-在bash脚本中,git无法识别它自己的目录?【代码】

因此,我在Atlassian-Stash中编写了一个bash脚本,用于接收后事件.在此脚本中,提交后,将创建一个代码协作者代码审查.要创建代码审查,它需要提交标题,提交用户和git SHA进行任何更改,并将更改上传到代码审查中.为了获得这些信息,我将目录克隆到–depth = 1(甚至没有–depth = 1)并使用git log(选项). 我看到的问题是,如果我手动运行脚本,它就可以正常工作.但是,如果它在提交后运行,则在克隆目录说它不是git目录后会出错.如果我在脚本退...

Linux-Bash脚本来查找,处理和重命名文件?【代码】

我正在尝试编写一个脚本,该脚本将遍历服务器上各个子目录下的所有文件,查找.jpeg文件,并通过将其转换为非渐进jpg的转换器运行它们. 我有:find /home/disk2/ -type f -iname "*.jpg" 查找所有文件. 然后,如果找到例如1.jpg,则需要运行:/usr/bin/jpegtrans /file location/1.jpg > /file location/1.jpg.tempjpegtrans应用程序将文件转换为需要替换原始文件的临时文件.因此,我需要删除原始文件并将1.jpg.temp重命名为1.jpgrm /file...

linux-包含&符号的bash脚本的/usr/bin/time【代码】

假设我们有一个包含命令的bash脚本,其中一些命令可能带有&符号.我想使用/usr/bin/time来衡量这种脚本的执行时间,但是由于&符,实际工作是在后台完成的,而脚本将命令返回给Shell,导致测量结果等于零. 有没有办法抑制&符号的行为(即不让命令在后台运行)? 之所以尝试执行此操作,是因为我想进行大规模基准测试(大量数据集,并且使用多个工具(某些工具表现出这种行为)). 一个具体的,非常简单的示例如下. 创建一个脚本test.sh,其中包含:#...

android-在adb shell上运行linux bash脚本【代码】

我正在尝试在adb shell上运行linux shell脚本.出错了!这是整个故事: 我写了一个简单的bash脚本hello.sh:#!/bin/bash function hello {echo "hello world!" }hello以./hello.sh运行它会产生o / phello world!现在我使用将文件推送到android设备adb push hello.sh /data/folder_name然后运行以下命令以输入adb shelladb shell在adb shell中触发以下命令cd /data/folder_name chmod 755 hello.sh sh hello.sh这是我在adb shell上得...

linux-从bash脚本启动进程失败【代码】

我有一台中央服务器,在该服务器中,我定期从cron启动脚本来检查远程服务器.该检查是按顺序执行的,因此首先是一台服务器,然后是另一台服务器. 该脚本(从中央服务器)在远程计算机上启动另一个脚本(将其称为update.sh),并且该脚本(在远程计算机上)正在执行以下操作:processID=`pgrep "processName"` kill $processID startProcess.sh该进程被杀死,然后在脚本startProcess.sh中启动,如下所示:pidof "processName"if [ ! $? -eq 0 ]; ...

Linux bash脚本:如何搜索列但返回整行?【代码】

我有一个制表符分隔的文件,其中包含如下数据:col1 col2 col3我编写了一个bash脚本,该脚本允许使用以下代码搜索文件:echo -en "Search term: " read searchdata=`cat data.data | egrep -i "$search"`这对于搜索整个文件非常有用,但是我现在只想搜索特定列(用户可以选择). 我知道cut命令,可以使用此命令在列上进行搜索:cat data.data | cut -f$col | egrep -i "$search"但是然后只输出该列,因此,如果我使用此方法,则我需要...