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

linux – Bash脚本:不使用$@或$*扩展参数【代码】

使用$@,您可以对bash中的文件列表执行操作.例: script.sh:#!/bin/bash list=$@ for file in $list; do _commands_; done然后我可以用这个程序调用~/path/to/./script dir1/{subdir1/*.dat,subdir2/*}这个参数将扩展为许多成为$list的参数.但现在我想要其他参数,比如1美元,2美元,这个名单是3美元.所以我想在脚本中发生dir1 / {subdir1 / * .dat,subdir2 / *}的扩展,而不是成为很多参数.在命令行上,您可以执行以下操作:find dir1/...

linux – 在NodeJS进程中创建bash包装器【代码】

我想构建一个运行的小脚本应该创建类似bash的会话(在当前的bash会话中,创建进程),以后可以用于某些疯狂的科学(例如管道到浏览器). 我尝试使用pty.js,将stdin传递给bash进程,以及从bash会话到stdout流的数据:var pty = require("pty.js");var term = pty.spawn('bash', [], {name: 'xterm-color',cols: process.stdout.columns,rows: process.stdout.rows,cwd: ".",env: process.env });term.pipe(process.stdout); process.stdin....

linux – 在bash脚本中实现find的简单版本【代码】

我有一项任务,要求我创建一个可以采用这些参数的find版本: > -name(处理名称的模式)> -type(f和d)> -print> -exec(并且能够处理{},尽管如果存在exec,您可以假设它始终是最后一个参数,不需要用分号终止. 它还声明“谓词可以以任何顺序出现,并且隐式短路并在一起.不要处理-o(OR).”我也不允许在我的脚本中使用find. 因此,示例输入将如下所示:myfind ~/dirtocheck/ -name '*.o' -type f -print -exec /bin/mv {} ~/.TRASH\;关于如何...

linux – 在xargs中使用反引号的Bash命令【代码】

echo $TMPLIST | xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump `get-temp-url --location {}`$TMPLIST有一个我想要处理的位置列表.我试图运行类似于上面的东西,但反引号内的括号不会扩展.我究竟做错了什么?解决方法:在这个命令中……echo $TMPLIST | xargs -I{} -n 1 -P $MAXJOBS curl -o {}_$DATESTRING.dump `get-temp-url --location {}`……背壳由贝壳解释; xargs从未见过它们.你可以这样做:echo $TMPLIST |...

如何在linux bash shell中对字符串数组进行排序?【代码】

参见英文答案 > How to sort an array in Bash 15个例如,数组是link2_pathname link1_pathname link3_pathname我怎样才能获得如下所示的数组.link1_pathname link2_pathname link3_pathname非常感谢提前!解决方法:管道循环进行排序.a=(l2 l3 l1) b=($(for l in ${a[@]}; do echo $l; done | sort))在处理包含空格的字符串值时,您可能需要注意IFS.

Linux Bash shell脚本中的IO重定向无法重新创建已移动/已删除的文件?【代码】

我对Linux上的shell编程很新,在我的Linux实例中,我正在以下列方式将程序的stdout和stderr重定向到两个文件并在后台运行它myprog > run.log 2>> err.log &这很好,我得到了我想要的行为 现在有另一个后台进程监视run.log和err.log,如果日志文件超过某个阈值,则将它们移动到其他文件名. 例如mv err.log err [date-time] .log 我的期望是,在此文件移动发生后,myrog输出重定向将再次创建err.log,新输出将写入该新文件.但是,在我的日志文...

linux – 如何检测bash shell命令后面是否为逻辑\u0026\u0026 AND或||要么?【代码】

我喜欢使用我使用的常用构建命令的短名称.我也喜欢他们通知 – 当他们完成时发送给我,以便我可以在等待而不是观看终端时进行多任务. 现在,如果我链接它们,我希望命令不通知.例如alias b='command and parameters for my build; notify-send'alias b2='command and parameters for a second type of build; notify send'$b// I am notified when it completes, just once.$b && b2// Today, I am notified twice, when b completes ...

linux – Bash:如何让脚本重新运行作为后台任务?【代码】

我正在编写一个旨在用作守护进程的Bash脚本.如果我的脚本的用户没有向脚本传递–sync选项,我希望脚本使用该选项将其自身重新运行为后台任务.这是我的代码(最后一部分是从this SO post被盗):#!/usr/bin/env bashargs=("$@") # capture them here so we can use them if --sync's not passed async=truewhile [ $# -gt 0 ] docase "$1" in--sync)async=false;;# other optionsesacshift done# if --sync isn't passed, rerun the sc...

linux – 函数和分形 – 递归树 – Bash!逻辑问题【代码】

我正在尝试根据构建它的要求构建分形树.出了点问题.请协助.我正在尝试根据请求的级别构建分形树.这里的关卡被跳过了.需要了解如何解决问题.#!/bin/bash declare -A matrix for ((i=1;i<=63;i++)) dofor ((j=1;j<=100;j++)) domatrix[$i,$j]='_'done done function update_matrix { p1=$1 p2=$(echo $2-1|bc) p1=$(echo $p1-1|bc) p3=$(echo 2^$p2|bc) p4=$(echo 2*$p3|bc) p5=$(echo $p3/2|bc) p6=$3 for ((q1=$p3;q1<$p4;q1++)) d...

linux – 如何在使用bash更改名称和扩展名的同时将多个文件移动到目录中?【代码】

/ opt / dir / ABC /中有多个文件名为allfile_123-abc allfile_123-def allfile_123-ghi allfile_123-xxx. 我需要将文件命名为new_name-abc.pgp new_name-def.pgp new_name-ghi.pgp new_name-xxx.pgp然后移动到/usr/tst / outputfor file in /opt/dir/ABC/allfile_123* ; do mv $file /usr/tst/output/"$file.pgp"; rename allfile_123 new_name /usr/tst/output/*.pgp ; done我知道上面的内容不起作用,因为$file = / opt / dir ...

linux – 我可以在bash中为多个并行后台进程使用相同的变量名吗?【代码】

在下面的shell脚本中,我想在后台并行运行2个命令来加速进程,等待它们完成并继续运行更多命令. 由于我在两个循环中使用相同的变量名称(DATASERVERNAME),这些变量是否会在后台相互干扰?我应该在每个循环中使用不同的变量名称,例如DATASERVERNAME_SYBASE,DATASERVERNAME_ORACLE吗?#!/bin/bash while read DATASERVERNAME dosome commands here done < sybase_data_servers.txt &while read DATASERVERNAME dosome commands here don...

linux – bash脚本和zsh shell中的数组行为(开始索引0或1?)【代码】

我需要阐述shell脚本中数组的以下行为: 想象一下,给出以下内容:arber@host ~> ls fileA fileB script.sh现在我可以执行以下命令:arber@host ~> ARR=($(ls -d file*)) arber@host ~> echo ${ARR[0]} # start index 0arber@host ~> echo ${ARR[1]} # start index 1 fileA arber@host ~> echo ${ARR[2]} # start index 2 fileB但是当我通过script.sh执行此操作时,它的行为会有所不同(Start Index = 0):...

linux – 解释这个bash重定向行为【代码】

我正在尝试重定向和管道,并且不了解某些行为.我有这个片段在每个stderr和stdout上生成一行:(echo stdout; echo stderr 1>&2)它似乎工作正常,(尝试> / devnull和2> / dev / null). 但是这三个命令的行为让我困惑:(echo stdout; echo stderr 1>&2) > >(wc -l) stderr 1 (echo stdout; echo stderr 1>&2) 2> >(wc -l) stdout 1 (echo stdout; echo stderr 1>&2) > >(wc -l) 2> >(wc -l) 2 (empty)为什么最后一个命令组合了两个流?或...

linux – 如何使用$和’,”对列进行排序.签署bash命令行?【代码】

我有一个文件,我想在该文件上使用类似“Cat”命令的内容打印出已排序的列表.例如,一个列就像这样Mike $1.00 Mason $1,000,000.00 Tyler $100,000.00 Nick $0.10结果Nick $0.10 Mike $1.00 Tyler $100,000.00 Mason $1,000,000.00解决方法:你可以试试这个sort -t$-nk2 fileName说明:-t$ : use $as separator-nk2 : sort using numbers in column 2

linux – 如何在bash脚本中创建一个使用箭头进行导航的界面?

我一直在使用大量的脚本而且我已经厌倦了总是在终端中键入命令,所以我想写一些用户界面.想象“aptitude”之类的东西,通过像“top”这样的循环进行实时更新.这是一个VPS,所以我不能图形化. 我需要的只是简单的菜单,在箭头等物品之间移动.有没有一个很好的教程,甚至可以使用bash? 在此先感谢您的时间.解决方法:看看dialog命令.它允许您创建可以处理键盘(甚至鼠标)输入的可视UI小部件. 您可以选择创建输入框,菜单,文本框,复选框等等....