【Linux-在gnome-terminal -x中运行bash函数】教程文章相关的互联网学习教程文章

linux – 在rsync / subshel​​l exec语句中,Bash没有捕获中断【代码】

语境: 我有一个bash脚本,其中包含一个子shell和一个EXIT伪信号的陷阱,并且它在rsync期间没有正确捕获中断.这是一个例子:#!/bin/bash logfile=/path/to/file; directory1=/path/to/dir directory2=/path/to/dircleanup () {echo "Cleaning up!"#do stufftrap - EXIT }trap '{(cleanup;) | 2>&1 tee -a $logfile }' EXIT(#main script logic, including the following lines:(exec sleep 10;); (exec rsync --progress -av...

在bash(Linux)中从另一个csv(如vlookup)中查找值【代码】

我已经尝试过在网上找到的所有选项来解决我的问题,但没有很好的结果. 基本上我有两个csv文件(管道分隔): file1.csv: 123 | 21 | 0452 | IE | IE | 1 | MAYOBAN | BRIN | OFFICE | STREET | MAIN STREET | MAYOBAN | 123 | 21 | 0453 | IE | IE | 1 | CORKKIN | ROBERT | SURNAME | |软木APTS | CORKKIN | 123 | 21 | 0452 | IE | IE | 1 | CORKCOR | NAME | HARRINGTON |都柏林| STREET | CORKCOR | file2.csv: MAYOBAN | BANGO...

linux – 用变量top-end编写一个bash for-loop【代码】

我经常使用众所周知的语法在bash中编写for循环:for i in {1..10} [...]现在,我正在尝试编写一个顶部由变量定义的地方:TOP=10 for i in {1..$TOP} [...]我尝试了各种各样的parens,花括号,评估等,并且通常会收到错误的“错误替换”. 如何编写for-loop以使限制取决于变量而不是硬编码值?解决方法:您可以像这样使用for循环来使用变量$TOP进行迭代:for ((i=1; i<=$TOP; i++)) doecho $i# rest of your code done

linux – ‘\u0026\u0026’与’&’在Bash中使用’test’命令【代码】

考虑:gndlp@ubuntu:~$test -x examples.desktop && echo $? gndlp@ubuntu:~$test -x examples.desktop & echo $? [1] 2992 0为什么Bash在这种情况下表现得像? 测试命令是否未完成,因此不处理echo命令?解决方法:&&的含义和&本质上是不同的. >什么是&&在巴什?在Bash和许多其他编程语言中 – &&意思是“和”.在这样的命令执行上下文中,它表示左侧和右侧的项目&&在这种情况下应该按顺序运行.>什么是&在巴什?单一&意味着前面的命...

linux – 如何让AWK使用在Bash脚本中创建的变量【代码】

参见英文答案 > How do I use shell variables in an awk script? 7个我的脚本看起来像这样#!/bin/bash #exampel inputfile is "myfile.txt" inputfile=$1 basen=`basename $inputfile .txt` # create basenamecat $inputfile | awk '{print $basen "\t" $3} # this doesn't print "myfile" but the whole content of it.我上面要做的是在AWK中打印之前创建的名为“basen”的变量.但不知怎的...

linux – 在jenkins管道上运行bash命令【代码】

在一个groovy脚本(用于jenkins管道)中:如何运行bash命令而不是sh命令? 我尝试过以下方法: 在sh调用中调用“#!/ bin / bash”:stage('Setting the variables values') {steps {sh '''#!/bin/bashecho "hello world"'''} }用bash调用替换sh调用:stage('Setting the variables values') {steps {bash '''#!/bin/bashecho "hello world"'''} }附加信息: 我的命令比echo hello世界更复杂.解决方法:您提供的Groovy脚本将第一行格式...

linux – Docker bash提示符不显示颜色输出【代码】

我使用命令:docker run –rm -it govim bash -l来运行docker images但是它不显示颜色输出.如果我使用?/ .bash_profile或再次运行bash -l,则输出将正确地输出颜色. Bash Prompt Image My bash_profile and bash_prompt解决方法:OP SolomonT报告docker run和env工作:docker run --rm -it -e "TERM=xterm-256color" govim bash -l并且Fernando Correia添加了in the comments:To get both color support and make tmux work, I comb...

linux – 在Windows上的Ubuntu bash上找不到“引用控制台的文件描述符”

我是新来的,这是我的第一篇文章. 我在Windows上的Ubuntu上遇到了Bash问题.如果我在Mac终端上输入“open(filename)”,它会用正确的程序打开文件,但如果我尝试在Windows bash上使用它,它会说:“找不到引用控制台的文件描述符”. 我也尝试过xdg-open和gnome-open但它们都没有用.有人可以解释如何解决问题以及open命令如何工作?提前致谢!解决方法:而不是打开你可以使用xdg-open做同样的事情,独立于应用程序,即pdf,图像等.它将打开一...

如何使用Linux中的终端命令将文件参数传递给我的bash脚本?【代码】

参见英文答案 > How do I parse command line arguments in Bash? 31个所以我的问题是如何使用Linux中的终端命令将文件参数传递给我的bash脚本?目前我正在尝试在bash中创建一个程序,该程序可以从终端获取文件参数并将其用作程序中的变量.比如我跑myprogram –file = / path / to / file in Terminal. 我的计划#!/bin/bash File=(the path from the argument) externalprogram $File (ot...

linux – 如何在bash中gzip所有子目录中的所有文件【代码】

我想在我当前位置的子目录之间进行迭代,并单独gzip每个文件.对于压缩目录中的文件,我使用for file in *; do gzip "$file"; done但这可以只在当前目录上工作,而不是当前目录的子目录.如何重写上述语句,以便它还可以压缩所有子目录中的文件?解决方法:除了查找和gzip之外,不需要循环或任何其他内容:find . -type f ! -name '*.gz' -exec gzip "{}" \;这将查找当前目录中及其下的所有常规文件,其名称不以.gz扩展名结尾(即,所有尚未压...

linux – 如何在Bash中列出每个文件和目录的大小(递归)并按大小排序?【代码】

我发现Bash中的目录大小并不容易. 我希望当我输入ls – < some options>时,它可以递归地列出目录文件大小的所有总和和文件,并按大小顺序排序. 那可能吗?解决方法:只需导航到目录并运行以下命令:du -a --max-depth=1 | sort -n或者为人类可读的大小添加-h,并且-r首先打印更大的目录/文件.du -a -h --max-depth=1 | sort -hr

linux – 在Bash脚本中嵌入密码【代码】

我正在运行一个测试脚本,其中文件需要复制到目标嵌入式系统.但是当从脚本运行将文件复制到远程目标系统的命令时,我被提示输入目标板的管理员密码.我怎么能脚本自动化,脚本将自己选择密码(从脚本中),并且我不必每次运行脚本时手动输入密码. 该脚本的代码片段如下:scp test.file1 <Target ip-address>:/home/bot21/test/.Password is prompted when the above command is run.解决方法:正确的方法是使用基于密钥的身份验证.Read abo...

linux – 防止*在bash脚本中扩展【代码】

Linux bash脚本:#!/bin/bashfunction Print() {echo $1 }var="*" Print $var执行结果:alex@alex-linux:~/tmp$./sample-script sample-script*扩展到文件列表,实际上是脚本本身.如何防止这种情况并查看实际变量值?在一般情况下,var可能比*更复杂,例如:home / alex / mydir / *.解决方法:你也需要逃避你的变量:Print "$var"在你的功能:echo "$1"

linux – 如何在bash中复制字符串?【代码】

我在bash中有以下字符串str="kallel"我想从str创建一个str2. str2包含str重复,直到长度= 20.所以结果应该是这样的:str2="kallelkallelkallelka"怎么做在bash?解决方法:这应该工作:str="kallel" str2="${str}" while (( ${#str2} < 20 )) dostr2="${str2}${str}" done str2="${str2:0:20}"

linux – 在bash上对版本字符串进行排序【代码】

STRINGS.txt的示例内容:3.0.33.0.11.23.0.11.13.0.113.0.163.0.15.13.0.153.0.143.0.10.33.0.10.23.0.10.13.0.13.13.0.103.0.133.0.93.0.123.0.83.0.7.23.0.7.13.0.73.0.9.23.0.9.13.0.23.0.8.13.0.6.13.0.63.0.53.0.13.0.0是否可以仅使用bash对所有这些版本字符串进行排序,最新版本是否在顶部?解决方法:这是可能的,但却是一项愚蠢的工作.如果你有GNU排序:sort -V -r <STRINGS.txt……将完全按照你的要求行事. 现在,如果你的意思...