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

linux – 如果后跟管道(bash bug?),Bash变量默认不起作用【代码】

我刚刚在bash中发现了一个我不理解的奇怪行为.表达方式${variable:=default}如果尚未设置变量,则将变量设置为默认值.请考虑以下示例:#!/bin/bash file ${foo:=$1} echo "foo >$foo<" file ${bar:=$1} | cat echo "bar >$bar<"输出是:$./test myfile.txt myfile.txt: ASCII text foo >myfile.txt< myfile.txt: ASCII text bar ><您会注意到变量foo的值为$1,但变量bar不是,即使其默认结果显示在file命令中. 如果你从第4行将无害管道...

linux – bash脚本替换文件中出现的所有占位符【代码】

我正在尝试编写一个bash脚本,用一个同名环境变量替换文件中所有出现的占位符.举个例子,如果我有一个像下面这样的文件……This is an {{VAR1}} {{VAR2}}. It should work across multiple lines in this {{VAR2}}.…我设置了以下环境变量:VAR1='example' VAR2='file'在我的文件上运行脚本后,我应该得到输出:This is an example file. It should work across multiple lines in this file.我确定必须有一个使用awk / sed的解决方案...

linux – Bash排序忽略前5行【代码】

在排序其余部分时,我无法忽略文件??的前5行.我当前的命令按第二项对整个文件进行排序,但是我需要跳过前5个“标题”行.我需要阅读它并将其写入同一个文件. 当前命令sort -f -t $-k2n,2 -o /folder/File.txt /folder/File.txt例2016/07/07 15:41:02 @24921 @ @ @-1 b$1$4$... a$2$5$...解决方法:这会对文件的第6行和第6行进行排序,同时保持前5行不变:{ head -n5 file.txt; tail -n+6 file.txt | sort -ft$-k2n,2; } >file.tmp && mv...

linux – 在bash别名或函数中使用历史扩展【代码】

我想做一件简单的事情让我的队友生活更轻松.他们不断地将报价复制到命令行中,这些命令行的格式化会破坏命令,即:“test”与“test” 事实证明,令人惊讶的是:function damn() { !!:gs/“/" }要么:alias damn='!!:gs/“/"'似乎都没有工作,并一直给我错误-bash: !!:gs/“/" : No such file or directory要不就:>我必须在这里遗漏一些明显的东西.解决方法:!在函数或别名中不起作用.根据bash手册:History expansion is performed i...

linux – 从空环境访问X11显示(bash)【代码】

问候! 我正在实施备份解决方案,我需要访问X11显示器以获取用户的密码并显示状态信息.我已经尝试在脚本中将$DISPLAY设置为:0.0(硬编码),但xhost和misc抱怨他们无法打开显示.我该怎么办? PS:脚本在这里:http://dpaste.com/109435/解决方法:如上所述,用户必须允许您访问其显示.他们需要执行xhost命令.将显示器打开给任何人都不是一个好主意! 你最好让他们跑xhost +jeeger或者您的用户正在运行的任何内容. HTH 干杯, 抢

使用bash或python或其他一些linux命令行工具创建一个dovecot SHA1摘要【代码】

我们的鸽舍和电子邮件服务器使用SHA1摘要对用户进行身份验证.我们无法真正更改当前摘要,因为我们有这么多用户,并且不希望让他们重新创建所有密码. 我们想要一种更简单的方法来创建一个摘要,以便为我们的用户输入数据库(最终创建一个Web界面,以便他们自己更改). 目前,我们使用linux命令创建摘要:dovecotpw -s SHA1我们想切换,因为dovecotpw不是可编写脚本的(至少不是没有使用expect或类似的东西).但是,我尝试过的所有东西(sha1sum,...

linux – 在Bash脚本中解析命令输出【代码】

我想运行一个命令,提供以下输出并解析它:[VDB VIEW] [VDB] vhctest[BACKEND] domain.computername: ENABLED:RW:CONSISTENT[BACKEND] domain.computername: ENABLED:RW:CONSISTENT...我只对一些关键作品感兴趣,例如’ENABLED’等.我不能只搜索ENABLED,因为我需要一次解析每一行. 这是我的第一个脚本,我想知道是否有人可以帮助我? 编辑:我现在有:cmdout=`mycommand`while read -r line do#check for key words in $line done < $...

linux – Bash创建变量然后为其赋值【代码】

对于这个问题,我有两个值,curdir和curlevel,它们在我的脚本中发生了变化.我想知道是否可以创建变量然后使用该值作为另一个值的名称.例如temp="dir_${curdir}_${curlevel}" $temp=$name_of_directory **<----Is there a legitimate way to do this?**所以如果最初curdir = 1并且curlevel = 0那么$(温度)= directory_one等于dir_1_0=directory_one然后如果curdir = 2并且curlevel = 4,我可以重置temp然后拥有$(temp)=another_direct...

linux – 这个简单的bash命令有什么问题?【代码】

$i不工作……它让我疯了!for i in {1..200}; do echo "/scratch/inputTest/prob/timit.test.pg.list_10_$i_prob.bin" >> longProbList; done在文件中只有/scratch/inputTest/prob/timit.test.pg.list_10_.bin /scratch/inputTest/prob/timit.test.pg.list_10_.bin /scratch/inputTest/prob/timit.test.pg.list_10_.bin /scratch/inputTest/prob/timit.test.pg.list_10_.bin /scratch/inputTest/prob/timit.test.pg.list_10_.bin...

Bash:连接到Linux抽象UNIX套接字

我有abstract Linux socket听取连接. 抽象的Linux套接字基本上是一个名为AF_UNIX的套接字 – 除了名称不引用文件系统上的文件.相反,名称只是位于内核中抽象套接字命名空间内的唯一名称. 我的问题:有没有办法只使用Bash shell连接到抽象套接字?我从this question开始就知道你可以使用socat或netcat连接到与文件系统上的文件相关联的普通命名的AF_UNIX套接字.但是当我尝试使用抽象套接字时,它不起作用(它将我的名字字符串视为文件,...

linux – Bash以递归方式替换名称上的许多空格【代码】

任何人都可以推荐一个安全的解决方案,从给定的根目录开始递归替换文件和目录名称中带下划线的空格?例如,$tree . |-- a dir | `-- file with spaces.txt `-- b dir|-- another file with spaces.txt`-- yet another file with spaces.pdf变为:$tree . |-- a_dir | `-- file_with_spaces.txt `-- b_dir|-- another_file_with_spaces.txt`-- yet_another_file_with_spaces.pdf我已经复制了另一个用户的问题,这是主要问题,但我需...

linux – 检查从同一bash脚本启动的后台进程的运行状态【代码】

我必须编写一个bash脚本,根据传递的命令行参数在后台启动进程,如果成功运行启动程序则返回. 这是我想要实现的伪代码if [ "$1" = "PROG_1" ] ; then./launchProg1 &if [ isLaunchSuccess ] ; thenecho "Success"elseecho "failed"exit 1fi elif [ "$1" = "PROG_2" ] ; then./launchProg2 &if [ isLaunchSuccess ] ; thenecho "Success"elseecho "failed"exit 1fi fi脚本不能等待或睡眠,因为它将由另一个关键任务c程序调用,并且需要高...

linux – bash空字符串/命令【代码】

我在bash中发现了一些奇怪的东西,我无法理解它是如何工作的.[test ~]$a="" [test ~]$$a && echo 1 1[test ~]$$a [test ~]$echo $? 0为什么$a(空的)返回0?它是否以某种方式转变为空命令?如果我在&&之前添加引号或写空字符串,则会返回错误.而空命令返回0.[test ~]$"$a" && echo 1 -bash: : command not found[test ~]$"" && echo 1 -bash: : command not found[test ~]$`` && echo 1 1那么,当我输入$a时会发生什么?解决方法:你似乎...

linux – bash内置时间命令的精度是多少?【代码】

我有一个脚本,使用bash内置命令时间测量程序的执行时间. 我试图理解这个命令的精度:据我所知它返回以ms为单位的精度,但它使用getrusage()函数返回一个以微秒为单位的值.但是读取this paper,真正的精度只有10ms,因为getrusage依靠滴答(= 100Hz)来抽样.这篇论文真的很老了(它提到Linux 2.2.14在Pentium 166Mhz上运行,内存为96Mb). 时间是否还在使用getrusage()和100 Hz滴答或在现代系统上更精确? 测试机器正在运行Linux 2.6.32. 编...

linux – 在bash中,我应该在函数中取消设置局部变量吗?【代码】

我应该在bash脚本中的函数末尾取消设置我的局部变量吗?例如,以下功能:square() {local var=$1(( var = var * var ))echo $var## should I unset $var here?? }只是对最佳实践感到好奇,谢谢!解决方法:如果您没有使用本地命令,那么您可能希望在离开函数之前取消设置变量以避免污染全局命名空间.square () {var=$1 # var is global, and could be used after square returns(( var = var * var ))echo $varunset var # Remove ...