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

linux-注销和登录时bash脚本的多个实例【代码】

我做了一个简单的脚本,它可以无限循环地工作.看起来像这样:while : do#operationssleep 5 done并将其添加到自动运行程序like this中. 一切正常,但是注销后,我有2个该脚本过程的实例(下一次注销后有3个实例,依此类推).它们中只有一个显示通知,但是它们都运行自己的睡眠过程. 我该怎么做才能解决这个问题?解决方法:注销并不会杀死所有进程.您需要自己杀死该过程.一种方法是在脚本中添加条件终止. 例:#!/bin/bash for proc in $(pg...

Linux-Bash-使用字符串变量创建字符串【代码】

我有一个名为CURRENTDATE = 20151105的变量. 我想创建一个字符串,如下所示: abc_20151105_20151105 我尝试了以下变体:echo "abc_$CURRENTDATE_$CURRENTDATE" This gave abc_20151105echo "abc_'$CURRENTDATE'_'$CURRENTDATE'" This gave abc_'20151105'_'20151105'我在这里想念什么?提前致谢!解决方法:问题在于,下划线是变量名的有效字符.尝试以下方法之一:echo "abc_"$CURRENT_DATE"_"$CURRENT_DATE echo "abc_${CURRENT_DA...

linux-从bash脚本中的grep输出扩展环境变量【代码】

我是bash脚本的新手,我只是想使它工作.我想要得到的是一个cd到默认下载目录的脚本,例如/ home / davide / Downloads,然后在Ubuntu中从那里下载文件.我正在获取默认的下载目录,例如:OUTPUT=$(grep DOWNLOAD $HOME/.config/user-dirs.dirs) DIR=$(echo $OUTPUT | cut -f 2 -d "=" | tr "\"" "\n")工作正常. DIR是一个像这样的字符串:$HOME/Downloads当我尝试CD时会出现问题.它的功能类似于:cd $HOME/Downloads这会引发错误,而应该...

linux-Bash脚本,需要帮助循环【代码】

目前,我正在使用此脚本来阻止中国的IP地址:# Create the ipset list ipset -N china hash:net# remove any old list that might exist from previous runs of this script rm cn.zone# Pull the latest IP set for China wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone# Add each IP address from the downloaded list into the ipset 'china' for i in $(cat ./cn.zone ); do ipset -A china $i; done# Resto...

linux-Bash:内联执行返回重复的“进程”.为什么?【代码】

bash:4.3.42(1)-发行版(x86_64-pc-linux-gnu) 执行以下脚本:# This is myscript.sh line=$(ps aux | grep [m]yscript) # A => returns two duplicates processes (why?) echo "'$line'" ps aux | grep [m]yscript # B => returns only one输出:'tom 31836 0.0 0.0 17656 3132 pts/25 S+ 10:33 0:00 bash myscript.sh tom 31837 0.0 0.0 17660 1736 pts/25 S+ 10:33 0:00 bash myscript.sh' t...

linux-如何将值添加到bash数组?【代码】

这个问题已经在这里有了答案: > How to pipe input to a Bash while loop and preserve variables after loop ends 2个抱歉subject clone,但是鉴于我从该答案中成功使用的技术无法在新脚本上正常工作,因此我认为现在是提出新问题的时候了. 无论如何,以下脚本非常简单:missed_symbols=()grep missed ${dest}/scribe.log | while read -r line; dosymbol=$(echo "${line...

linux-如何在shell中使用花括号(bash)【代码】

我目前正在尝试重现基本的Shell行为,尤其是重现Globing行为.我在测试带有花括号的命令时,发现这种行为我不理解.首先,我正在使用的目录的内容如下: 1abc 2abc 3abc abc1 abc2 abc3 然后,我键入以下命令:ls {[1-3],[a-c]} *,它按预期返回了上面的所有文件. 最后,我尝试了以下命令:ls {{,[1-3]},[a-c]} *,如您所见,它带有大括号.现在我不明白的是该命令的返回,因为它给了我:1abc 1abc 2abc 2abc 3abc 3abc abc1 abc1 abc1 abc2 ab...

Linux Bash文件名自动编号而不删除前导零【代码】

对于Linux,我想自动以所使用的格式添加Oracle DB表空间.为此,与上一个文件相比,我想增加1. 通常使用以下格式来调用数据文件:/ora/oradata/tablespace_datafile.dbf /ora/oradata/tablespace_datafile_02.dbf /ora/oradata/tablespace_datafile_3.dbf我能够用sed’s / [0-9].* //将$basefilename提取到一个变量,其输出为:/ ora / oradata / tablespace_datafile_ 我还能够用sed s / [^ 0-9] // g将数字提取到应该为$counter的变量...

linux-如何使用bash脚本“设置”屏幕【代码】

我正在尝试编写一个bash脚本,以创建具有一组特定窗口的屏幕(软件)会话,并在每个CD上创建cd到特定目录. 这是我到目前为止的脚本:#!/bin/bashkillall screen; screen -AmdS work; screen -S work bash -c "cd myDir";问题是我似乎无法在该会话上更改目录.运行此脚本后,我运行$screen -r并且当前目录仍然是我的默认目录(?/). (我尝试将cd命令更改为touch myFile,并且在运行脚本后该文件在那里)解决方法:尝试以下操作,它将使用bash打开...

linux-如何使用bash脚本将crontab作业添加到crontab?【代码】

我尝试了以下命令,crontab停止运行任何作业:echo“ @reboot / bin / echo’test’> /home/user/test.sh” | crontab- 在Linux中将作业添加到crontab的脚本的正确方法是什么?解决方法:我建议您阅读Cron and Crontab usage and examples . 您可以运行以下命令:? ( printf -- '0 4 8-14 * * test $(date +\%u) -eq 7 && echo "2nd Sunday"' ) | crontab ? crontab -l 0 4 8-14 * * test $(date +\0) -eq 7 && echo "2nd Sunday"...

linux-bash:用于替换命令的变量中的管道字符【代码】

可以请人解释一下,为什么这不起作用?#!/bin/bash cmd="ps aux | grep -v grep" cnt=$($cmd)我从ps得到一个错误.error: garbage optionUsage:ps [options] .....仅“ ps aux”是可以的-但不能使用任何其他管道命令. 谢谢!解决方法:使用函数将管道命令存储为以下命令会更好,更安全: 未设置cmd cntcmd() {ps aux | grep -v grep }并将其用于命令替换中,如下所示:cnt="$(cmd)"See BASH FAQ on storing command line in a variable

linux-在bash中将正在运行的函数发送到后台【代码】

如标题所示,我想将正在运行的函数发送到后台.就像是function myfunc {some_command | while read line#some_command must be running indefinitelydo#if some condition on ${line} satisfies#Do something and go to backgrounddone }可能吗? 我知道可以直接调用&在后台直接运行它.那是很明显的.这不是this的重复项.解决方法:一个简单的命令在后台创建一个进程并等待其终止,在这种情况下,调用方必须与继续运行的被调用方异步满足...

Linux-Ping摘要未在bash脚本中显示日期【代码】

我正在尝试编写一个小脚本,该脚本将通过ping跟踪网络延迟. 我需要写一个文件,并用日期和时间标记每个ping条目.如果ping时间太长,我需要实时查看响应并停止脚本. 我可以在没有日期的文件中获取ping结果和摘要,以下代码#!/usr/bin/env bashecho "Enter Dealer number: " read deal echo "Enter IP address: " read ip touch ./${deal}_pingtest.txt ping $ip > ./${deal}_pingtest.txt & tail -f ./${deal}_pingtest.txt标准输出结果...

linux-将bash表达式传递给AWK以进行浮点运算【代码】

我试图在bash中执行浮点运算,但是由于不支持浮点运算,因此尝试使用AWK获得解决方案.以下是我面临的问题: 我认为这对我来说很好: 码echo - | awk '{printf("%04.4f \n", (-225.2*7+30*6)/17 + (19^2)/9) }'输出-42.0301但是我的动机是“读取一个表达式”并计算正确为4个小数的值,因此请尝试在下面的代码中输入相同的表达式(-225.2 * 7 30 * 6)/ 17(19 ^ 2)/ 9),并给出错误的值(我猜变量是作为字符串传递给awk的): 码read inpt e...

linux-如何在Bash中解析命令行参数(作为键值对)?带有嵌套分隔符的参数【代码】

当我使用等于作为分隔符解析命令行参数时,可以嵌套等于.CC =“ arm-oe-linux –sysroots = / home / somelocation” CFLAGS =“”我已经试过了:for ARGUMENT in "$@" doKEY=$(echo $ARGUMENT | cut -f1 -d=)VALUE=$(echo $ARGUMENT | cut -f2 -d=) echo $KEYecho $VALUEecho "*******************"case "$KEY" inCC) CC=${VALUE} ;; CFLAGS) CFLAGS=${VALUE} ;; *) esac done但是,对于嵌套=则无济于事.有什...