Bash/apt-安装前检查软件包版本

命令“dpkg”具有选项“-E”或“-skip same version”,以便在已安装相同版本的软件包时不安装该软件包 据我所知,“apt get”并没有任何相似之处 所以我想到了这个: Installed=`sudo apt-cache policy openjdk-6-jre | sed -n '2p' | cut -c 14-` #6b20-1.9.9-0ubuntu1~10.04.2 Candidate=`sudo apt-cache policy openjdk-6-jre | se

Bash 有条件地退出/中止shell脚本执行

我正在编写一个bash脚本,它利用getopt处理脚本名称后面提供的许多选项 我正在通过油灰接触我的外壳 我用命令调用脚本。scriptname.sh-o——选项(有没有更好的方法来执行bash脚本?) 我希望能够中止/停止脚本,但每当我使用exit时,它不仅会退出脚本,还会关闭terminal/puTTy窗口 …这有点违背了目的,因为我要做的是设置某种帮助文本输出,显示文本,但不执行脚本的其余部分 退出的处理方法是什么?在不关闭任何父控制台窗口的情况下,我应该使用什么来停止/中止脚本?使用退出

如何在bash中垂直替换控制台输出

我正在使用Bash(cygwin),我想实现一个跨越垂直线的进度指示器。它替换控制台输出,不附加到控制台输出。它需要看起来像一个动画 因此,此输出会随着时间的推移而出现: 迭代1: --- --- --- 迭代2: *-- --- --- 迭代5: *** *-- --- 诀窍是跨越垂直线 如果不跨越垂直线,echo很容易实现。我可以使用\b向后移动空格并覆盖以前的字符: echo -n -e "\b" 但是如何上移一行并覆盖以前的行呢 使用ANSI转义序列移动光标: \033[NA

Bash 从tar.gz中提取文件,而不接触磁盘

当前流程: 我有一个tar.gz文件。(事实上,我有大约2000个,但那是另一个故事) 我创建了一个临时目录,提取了tar.gz文件,显示了100000个小文件(每个大约600字节) 对于每个文件,我将其放入一个处理程序,将该循环导入另一个分析程序,并保存结果 我使用的机器上的临时空间几乎不能同时处理其中一个进程,更不用说默认发送的16个(超线程双四核)。 我正在寻找一种不用保存到磁盘即可完成此过程的方法。我相信使用tar-xf$file-O单独拉取文件会导致性能损失,但这可能是我一直面临的问题

Bash 文件操作循环

好的,这个问题有两个方面:1)实际的文件操作位2)在unix中循环此操作 第1部分) 我有两个文件: 文件1 a b c d e f g h 和文件2 A B C D E F G H I J 我希望(首先)得到以下结果: a b A B > c d A B > e f A B > g h A B …并将此输出保存到outfile1 我想我必须使用awk、剪切和/或粘贴之类的东西,但我无法将它们全部放在一起 第2部分) 然后,我想对文件_2中的所有行循环此操作(请注意,文件

Bash shell脚本grep以grep字符串

以下脚本的输出为空。它少了什么?我在试着编一条线 #!/bin/ksh file=$abc_def_APP_13.4.5.2 if grep -q abc_def_APP $file; then echo "File Found" else echo "File not Found" fi 在bash中,使用恶心!使用shell的字符串匹配 if [[ "$file" == *abc_def_APP* ]]; then ... 为什么#!行说ksh?文件的值应该是多少?我

bash脚本中的参数名称冲突

我尝试模拟中提供的解决方案,它查找并终止一个进程,并开发了以下脚本,该脚本通过ssh连接到输入参数中指定的机器列表并终止所需的进程 for node in "$@"; do ssh $node "kill $(ps aux | grep '[s]omeprocess' | awk '{print $2}')" done awk'{print$2}'中使用的变量$2应该是grep[s]omeprocess传递的第二个参数。但是,似乎使用了整个脚本的第二个输入参数(这一部分我错了吗)。我能知道

Bash 将参数导入脚本

我可以将参数导入使用curl下载的脚本中,并让脚本将其接受为$1、$2等。。试着让这个世界向你问好 $ curl mysite.com echo hello $1 $ echo world | curl mysite.com echo hello $1 $ echo world | $(curl mysite.com) hello $1 您可以将文本从curl输送到sh curl http://example.com/ | sh /dev/stdin world 显然,/dev/stdi

如何将sshpass命令放入bash脚本中?

我试图在bash脚本中运行sshpass命令,但它不起作用 如果我从终端运行相同的命令,它可以正常工作,但在bash脚本中运行它却不行 #! /bin/bash sshpass -p 'password' ssh user@host command 我知道安全问题,但现在不重要了 有人能帮忙吗?我错过了什么吗 谢谢1-您可以编写sshpass的ssh命令,如下所示: #!/bin/bash export SSHPASS=password sshpass -e ssh -oBatchMode

Bash 如何使程序被#调用/脚本顶部的bin/foo?

正如您所知,shell脚本在脚本顶部有一个“#!/bin/bash”,它将脚本结束为shell二进制,然后shell将运行该脚本。我想做一个程序,它应该被称为“#!/bin/foo”,然后它应该读脚本。但是我不知道我该怎么做这样的事情。有人能帮忙吗?当#/bin/fooshebang运行时,/bin/foo运行,并将文件名作为参数,例如,如果文件名为bar,则将运行的命令行为/bin/foo bar。要在C中实现它,请检查main()的argc(参数计数)是否为1,然后argv的唯一元素将是文件

Bash 使用id3搜索MP3的脚本

我想创建一个脚本,它将使用4个id标记中的一个来搜索驱动器上的MP3文件。到目前为止,我成功地创建了这样的东西,但它根本不起作用。有人能建议我修什么吗 #!/bin/bash while getopts ":atbg:" opt; do case $opt in a) artist=${OPTARG} ;; b) album=${OPTARG} ;; t) title=${OPTARG} ;; g) genre=${OPTARG} ;; esac done find . -name '

awk/bash引用:打印\在echo中

我们需要打印出来 targetID=“123” AssayID=“456” A.我们尝试: printf "awk -F"\""," 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_a

在bash中使用扩展分隔符粘贴文件

大家好 今天,我想知道如何用这个分隔符粘贴几个文件:, 当我使用like时: paste -d',,' ... 输出仅引入一个, 我需要双逗号,以便更好地处理csv文件,提前感谢您提供的任何线索如果您可以识别文件中未使用的字符,您可以分两步完成此操作 paste -d '~' file1 file2 | sed 's/~/,,/' 显然,如果数据中已经存在波浪线,请使用不同的分隔符。控制角色可能是一个相当安全的赌注,但其代价是操纵起来有点麻烦。(在Bash中,您可以使用例如$'\001'来生

bash从文件中删除除一个重复匹配项以外的所有匹配项

我有一个包含测试失败的大文件。许多这样的测试都有重复的失败。我想删除所有重复项,保留每种类型的一个。以下是该文件的摘录: 034 [power] 34 of 343 check 056 [drive] 666 of 3345 099 [power] 53 of 4354 103 [power] 60 of 4354 231 [cpu] 2 of 653 437 [drive] 65 of 879 862 [speed] 864 of 4397 fast 在此示例中,我希望删除重复项,即附加

Bash 如何创建包含文件名前缀的目录?

我有一个简单的问题 比方说,我有a.txt,b.txt,c.txt。 经过重复的过程后,我希望将结果保存在单独的目录中,如a_result/a_result.txt、b_result/b_result.txt、c_result/c_result.txt 如何使用shell脚本来完成它 谢谢大家! 您可以使用参数扩展的${param%word}形式从输入文件名中删除.txt,并创建相应的目录和输出文件名 for input in a.txt b.txt c.txt; do stem=${i

Bash Grep命令-文本处理

我有一个links.txt。我需要这个输出 links.txt: http://www.google.com/test https://bing.com/web2 www.yahoo.com/link/link2 output.txt <a href="http://www.google.com/test" target="_blank">http://www.google.com/test</a> <a href="https://bing.com/web2"

Bash-解析apt get install for progress bar的输出

我正在寻找一种在文件中写入apt get下载的百分比和速度的方法(事实上所有行) 可能吗? 我已经看到了这一点和响应,但我想知道bash中是否有解决方案,或者您是否可以告诉我这种类型输出的名称?谢谢在BroSlow的帮助下,我尝试了以下脚本: #! /bin/bash exec >/home/guillaume/work/apt-install-firefox.log 2>&1 unbuffer apt-get install --reinstall firefox 输

bash脚本将XML数据提取为列格式

尝试将xml数据从多个字符串输出动态提取(数据更改)为列格式 当我对一个SQL数据库运行查询时,大约有100个XML位发出回声 油灰 某人 2014-10-27T11:53:59.8993492-04:00 真的 真的 云服务客户端交付\Willis\Linux\Test-SJC 77e96d52-f165-482f-8389-ffb95b9d8ccd infullscreen模式 主机名-H-A10D 真的 假的 10.0.0.100 10.0.0.100 IBM437 C24位 不要玩

Bash SVN日志-仅获取注释中带有模式的修订

我试图创建一个简单的bash脚本,以验证哪些修订版的注释中不包含特定的模式 例如: ------------------------------------------------------------------------ r272876 | user | 2014-10-30 11:15:06 +0000 (Qui, 30 Out 2014) | 1 line PATTERN-17278: My comment. ------------------------------------

Bash Shell脚本,根据文件名将文件移动到另一个目录中

我不熟悉unixshell脚本。我有一个小任务,就是根据文件名将文件移动到另一个目录中。 我有一个名为Cars的目录,其中包含.csv文件。我必须读取.csv文件名,并根据文件名将每个文件移动到另一个目录中,如下所示: BMW_c.csv必须进入BMW/c/目录。 Mercedes_x.csv必须进入Mercedes/x/目录 我试着使用for和if循环,但直到子目录才使用 我非常感谢你的帮助。像这样的事情可能会奏效 for f in *.csv; do DIR="$( echo ${f%

检查bash中命令的结果

我有以下bash脚本: mumodule a.version 当我运行basha.sh时,它会打印结果: a_machine: 2 b_machine: 2 c_machine: 1 我想在.sh脚本中检查所有机器的版本:2并打印True,否则为False 有没有办法将结果放入变量并检查此输出 a.sh | grep "^ \+[0-9.]\+$" | grep -qv "^ \+2$" && echo False || echo True

Bash 操纵一年中的某一天

我想得到一年中的某一天,然后减去一,再乘以三。它是在crontab中运行脚本的开关 if (((date(%j) -1) %3)) echo 'hello' exit() else echo hi fi 这只是为了测试它是否正常工作,但是我得到了 ./getdate.sh: line 4: syntax error near unexpected token `fi' ./getdate.sh: line 4: `fi' 这对你们中的一些人来说可能是微不足道的,但我对bash还是很陌生

如何从QT程序在终端中启动bash脚本?

我希望程序检查脚本是否已启动,如果未启动,则启动它(在终端中和作为根目录中) 谢谢!;-) QProcess异步运行外部脚本,因此 proc->start(...); delete proc; 你一开始就杀了它(甚至在之前)。尝试在删除之前添加waitForFinished() proc->start(...); proc->waitForFinished(); delete proc; 欢迎来到SO,请展示您的编码努力,SO不是代码编写服务。谢谢!但是,如何检查脚本是否

Bash Ansible:如何使用chmod+;有Ansible的文件吗?

使用ansible创建chmod+x文件的最佳方式是什么 将以下脚本转换为ansible格式 mv /tmp/metadata.sh /usr/local/bin/meta.sh chmod +x /usr/local/bin/meta.sh 这就是我到目前为止所拥有的 - name: move /tmp/metadata.sh to /usr/local/bin/metadata.sh command: mv /tmp/metadata.sh /usr/local/bin/metadat

Bash 使用grep从记录中提取多个数据片段

编写bash脚本的一部分,从下面列出的每条记录中提取描述、VolumeId、SnapshotId和StartTime。目的是按开始时间对记录进行排序,以允许另一个步骤根据此时间删除记录。我需要这些字段来标识某些快照的有效性。您建议我如何从每条记录中提取数据,以便按开始时间进行排序?最后,我需要计算记录并根据时间删除最早的记录,并通过提取快照ID删除记录 示例数据: "Snapshots": [ { "Description": "HipChat_30min_Snapsho

Bash Awk:不同列和不同行的总和

假设我有这个输入: num gene Label start end n1 g1a1 L1 28 40 n1 g1a1 L2 9 42 n1 g1a1 L2 28 90 n1 g1a1 VE 64 209 n1 g1a1 VE 83 377 n1 g1a1 VR 91 377 n1 g1a1 V 378 1516 n1 g1a1 V 475 1613 n1 g1a1 V 1

Bash 递归符号链接目录树

我正在尝试运行从一个目录到另一个目录的递归符号链接: find data/*-type d-exec ln-s{}current/{}\; 还有一点:我需要去掉前缀中的数据/ 在OSX服务器(10.8,Mountain Lion)上运行——并非所有标准GNU命令都受支持,如cp-rs 我所说的递归: data是Laravel版本之间的持久目录列表: data/ \ storage/ - framework/ - session/

Bash 从TimeMachine备份到NAS的Rsync';t同步确切的文件权限

我正在实现bash脚本,将我的计时器中的所有备份文件夹重新同步到同一本地网络中的NAS存储。在rsync完成后,我尝试将rsync从NAS重新同步到我的计时器,但失败了。错误消息如下所示: rsync: delete_file: unlink "/Volumes/TimeMachine/Backups.backupdb/kongycmac/2017-05-16- 120657/Mac OS/usr/share/man/mann/S3.n" failed: Operati

Bash 在Jenkins上寻找软件集合(SCL)

我的目的是在Jenkins上为所有用户提供devtoolset-4。因此,如果我登录到托管Jenkins的VM,并从命令行执行source/opt/rh/devtoolset-4/enable,一切都正常 因此,我的想法是将这句话包含在/etc/bashrc中,但是我在Jenkins中得到了这个错误: +++ source /opt/rh/devtoolset-4/enable ++++ test -e /opt/rh/rh-java-common/enable ++++ . scl_sourc

Bash 仅从netstat输出中提取开放端口号

此命令有以下输出: netstat -ant |grep LISTEN | awk '{ print $4 }' 0.0.0.0:111 192.168.122.1:53 0.0.0.0:22 127.0.0.1:631 127.0.0.1:25 :::111 :::22 ::1:631 ::1:25 如何仅从输出中提取最后的端口号?请使用awk尝试此方法,如果有帮助,请告诉我 netstat -ant | awk '/LISTEN/{sub(/.[^:]*/,"");gsub(/:| .*

如何在排序后获得所有条目的计数,并在bash中只保留唯一的条目?

我有一个包含重复条目的大文本文件,因此我使用以下命令对输出文件进行排序并仅保留唯一条目: sort -u bigfile.txt > uniqueentry.txt 我想对我尝试使用-c的所有唯一条目进行计数,如下所示: sort -u -c bigfile.txt > uniqueentry.txt 没用,有人能帮我吗?谢谢你想要什么还不清楚 如果要计算唯一项的总数,可以按如下方式进行: sort -u bigfile.txt | wc -l 如果要计算原始文件中每个唯一条目

Bash 使用grep或sed替换与模式不匹配的单词

我是正则表达式范例的新手,我遇到了一个我正试图解决的问题,但没有成功 设想一个文件test.txt包含: hello everyone, whatsi up i hope my program worksa if it doesnt... ho well! 我只想将以辅音开头、以元音结尾的单词输出到另一个文件output.txt,这样会导致: hello whatsi hope worksa ho 我正在使用grep-o'\b[^aeiouAEIOU]\w*[aeiouAEIOU]\b'te

Bash 如何从文件中提取特定值并将其打印到另一个文件中

我有以PDB ID命名的PDB文件,例如2KRJ.PDB。我只想从它们中提取以ATOM或hetam开头的行,然后将它们复制到一个具有相同名称和.txt扩展名的新文件中,例如2KRJ.txt 我知道如何提取这些行,但复制到另一个文件时遇到问题 这是我到目前为止为提取而编写的脚本: #!/usr/bin/perl -w $dirname = '.'; opendir(DIR, $dirname) or die "cannot open directory"; @files = grep(/\.pd

用于修改和压缩文件的Bash脚本

我正在尝试编写一个脚本来压缩一些文件。但是,在某些文件中,我需要更新依赖项的路径 当前用于压缩文件的脚本如下所示 #!/bin/sh for APP in "${APPS[@]}" do cd app/${APP} npm install zip -r ../../test.zip node_modules zip -uj ../../test.zip src/*.js cd ../../ zip -uj test.zip app/utils/*.js done 在

Bash 仅在与模式匹配的行中替换子字符串

仅当我不想替换的行的一部分包含子字符串列表中的一个时,如何在sed中运行替换 例如,在以下示例输入中,用于标记我要替换的行的子字符串是123、456和abc: # jdggsdihdf, 123 # ljhkhkjh, 789 # fagdfhgghjasfa, 456 # jsajspjsdighishxc, abc # jgasdjGA, def 因此,仅应修改这些管路,且应保留带有789或def的管路: Replaced text, 123 # ljhkhkjh, 789 Replace

将nmap结果分配给bash中的数组

我制作了一个bash脚本,将nmap命令的结果插入数组。该脚本在Bash4.3.30上运行,但当我尝试在Bash4.4.12上运行它时,它不起作用。看起来数组是空的,或者它只有第一个值 这是我的密码: #!/bin/bash declare -a IP_ARRAY NMAP_OUTPUT=`nmap -sL $1 | grep "Nmap scan report" | awk '{print $NF}'` read -a IP_ARRAY <<< $NMAP_OUTPUT pr

Bash脚本冲突

我正在尝试编写一个bash脚本来创建文件夹并安装软件。安装软件需要超级用户权限,但无法作为超级用户创建文件夹 下面是脚本的一个示例: #!/bin/bash/ cd ~ mkdir Documents pacman -S firefox 有人知道如何克服此冲突吗?您可以在脚本中仅使用pacman命令作为root用户运行整个脚本,而不是以root用户身份运行: #!/bin/bash mkdir ~/Documents sudo pacman -S firefox 这样,将在用户的主目录中创建

Bash:如何在不更改变量的情况下更改包含变量的数组中的值

在这里,我的目标是让第9行将数组中的值设置为null/从数组中删除它,从而得到=。然而,就代码本身而言,由于${movelist[$movecheck]}会产生一个变量c*1,当将其声明为null时,它会抛出c41=command not found。我尝试使用eval&declare:eval-declare${movelist[$movecheck]}=,但是使用它,它没有从数组中删除值,而是更改了实际变量。因此,上面示例代码的结果应该是movelist数组的末尾包含c21 c41。干杯。使

如何在bash函数中引用回tics?

我希望在.bash_配置文件中有这样一个函数: function usb() { cd `pwd` } 但当我运行它时,它不会进入当前目录,而是进入我的主目录。我试着用几种不同的方法引用back tics,但无法理解。如果不了解为什么要编写此函数,它应该是这样的 usb () { cd "$(pwd)" } usb(){`pwd`;}可以工作,但是$(…)通常比`…cd更受欢迎?也许cd$PWD。。。但你为什么要这么做?如果你想引用它们(同样,我也不明白为什么),单引号可以很

在bash中将比较输出打印为布尔值

我有个问题 a=1 b=2 我希望将比较输出转换为变量。ie在windows语言中,您可以编写类似的内容。它应该打印false print ($a == $b) 在控制台中尝试下面这些 echo $a -eq $b echo (( $a -eq $b )) echo "$a" -eq "$b" c= $(expr "$a" -eq "$b" ) echo $c 请注意,bash本机不支持bool类型运算符。根据shell的成功/失败状态,所有命令/内置程序都会向shell返回退出代码。

如何通过bash/shell读取组合列表?

我有一个A_1文件夹、一个A_2文件夹、一个A_3文件夹……直到A_561文件夹 每个文件夹都有一个子目录,其中包含一个B_1、一个B_2、一个B_3。。。还有一个B_34文件夹 在B_1文件夹中,有名为F_1_1.txt、F_1_2.txt的文件。。。F_1_38.txt。F_2_1.txt,F_2_1.txt。。。F_2_38.txt 在B_2文件夹中,有名为F_1_1.txt、F_1_2.txt的文件。。。F_1_38.txt。F_2_1.txt,F_2_1.txt。。。F_2_38.tx

&引用;git推送原点主控”;在bash脚本中提供奇怪的行为

我的bashrc文件中有这个简单的函数 功能升级{ cat~/.bash\u别名>~/bash/.bash\u别名 cd~/bash git添加。 如果[[$1==”“];则 git提交-m“更新” 其他的 git提交-m“$1” fi git推送源主机 cd-1>/dev/null } 此函数有一个目的,这是预期的行为: 首先,将bash存储库中.bash_别名文件的内容替换为cat~/.bash_别名的标准值 第二步,进入git对应的~/bash目录 第三阶段,阶段所有更改 Fourth,

Bash 使用sed替换文件中的值

我的目标是通过识别变量名和使用sed来替换某些变量的值 但是,我没有得到所需的输出,值不是被替换,而是被附加 输入文件内容: export TENANT_NAME=xxxx export WONDER_VALUE=xxx_xxx_xxxx_xxxx export LOAD_BALANCERS=xxxx_xx Bash脚本: #!/bin/bash sed "s/${1}=*/${1}=${2}/" input.env >> input.env #!/bin/bash sed

Bash 将字符串转换为日期并与文件创建时间进行比较

我试图在bash中比较转换为日期的字符串和文件创建时间 #!/bin/bash test='2020-05-13 08:00' testConverted=$(date -d "$test" +'%Y %m %d %H:%M') [ "~/fileToCompare" -nt "$testConverted" ] && echo "yes" 无论我放在哪个测试日期,它总是返回false。日期转换错误吗?可以这样做吗?方法是使用date命令将日期字符串转换为Unix历元时间(自

Bash while循环中的sed命令不';t写入输出

我有这个输入文件 gb|KY798440.1| gb|KY842329.1| MG082893.1 MG173246.1 我想得到“|”之间的所有字符,或者如果没有“|”的话,得到整行之间的所有字符。这是一个期望的输出,看起来像 KY798440.1 KY842329.1 MG082893.1 MG173246.1 我写道: while IFS= read -r line; do if [[ $line == *\|* ]] ; then sed 's/.*\|\(.*\)\

Bash 使Deno脚本全局可用

我已经使用Deno为我的更通用的项目构建了一个CLI工具。它很有用,做我需要它做的事情。然而,我正在研究如何使用Deno实现类似于npm安装-g的功能 我知道我可以用bash脚本轻松创建一个~/.myDeno,并添加导出路径=$PATH:~/.myDeno,但我想知道是否有一个正确的过程可以使用Deno实现这一点。因为到目前为止我还找不到它。对于其他任何人deno安装将它安装在主目录中的.deno文件夹中,并提供需要添加到bash配置文件的路径修改。您可以使用deno安装或deno编译从deno

  1    2   3   4   5   6  ... 下一页 最后一页 共 899 页