Articles of shell

busybox sh包装添加额外的function

我需要一个简单的busybox sh包装器,它将做到: IF "-Q" PARAMETER IS PROVIDED THEN acommand ALL PARAMETERS BUT "-Q" 2>&1 1>/dev/null ELSE acommand ALL PARAMETERS FI 参数可能包括空格。 顺便说一句,我想用busybox sh运行脚本,它不支持数组。

如何在基于当前目录的Konsole中以编程方式更改颜色?

我目前使用的颜色scheme基于我正在工作的目录。我手动打开一个Konsoleshell,然后cd进入一个目录并进入设置并更改颜色scheme。 我想要做的是Konsole根据我在哪个目录自动设置其前景和背景颜色。基本上,如果我在/ home / me / src / java下面的任何子目录,那么我想使用文本白色,背景蓝色,例如。 如果我在/ home / me / src /文件下面,我想要黑色文本,例如背景白色。 当我调用“cd”命令时,我希望颜色变化自动地以编程方式发生。 这可能吗? 如果是这样,你可以提供一些方向,如何? 我看到它的方式,我将需要能够做一些事情: 能够检测shell进程(bash)运行在哪个Konsole中。 能够通过API调用告诉Konsole即时更改颜色scheme。

linux FIFO中的数据似乎丢失了

我有一个bash脚本,它想要并行执行一些工作,我通过将每个作业放在后台运行的子shell中来完成。 虽然同时运行的作业数量应该受到一定的限制,但是我通过首先在FIFO中插入一些行,然后在分割子shell之前,需要父脚本从这个FIFO中读取一行。 只有获得一条线后,才能分叉子壳。 到目前为止,一切正常。 但是当我试图从子shell中的FIFO中读取一行时,似乎只有一个子shell可以获得一行,即使在FIFO中显然有更多的行。 所以我想知道为什么其他子shell不能读取一行,即使在FIFO中有更多的行。 我的testing代码看起来像这样: #!/bin/sh fifo_path="/tmp/fy_u_test2.fifo" mkfifo $fifo_path #open fifo for r/w at fd 6 exec 6<> $fifo_path process_num=5 #put $process_num lines in the FIFO for ((i=0; i<${process_num}; i++)); do echo "$i" done >&6 delay_some(){ local index="$1" echo "This is what u can see. $index \n" sleep 20; } #In each iteration, […]

shell脚本过滤du,并通过子文件夹中的文件内的string查找

我有我在cygwin上运行的以下命令: find / cygdrive / d / tmp / * -maxdepth 0 -mtime -150 -type d | xargs du –max-depth = 0> foldersizesreport.csv 我打算用这个命令来做下面的事情: 对于在过去150天内修改过的/d/tmp/中的每个文件夹,检查其总大小(包括其中的文件),并将其报告给foldersizesreport.csv文件,但现在对我来说还不够好,因为每个文件夹内部 /d/tmp/subfolder1/somefile.properties /d/tmp/subfolder2/somefile.properties /d/tmp/subfolder3/somefile.properties /d/tmp/subfolder4/somefile.properties 所以你看到每个子文件夹里面有一个名为somefile.properties里面的文件有一个属性SOMEPROPKEY=3808612800100 (以及其他属性) 这是以毫秒为单位的时间,我需要改变这个命令,以便代替-mtime -150它将在整个计算中只包含子文件夹SOMEPROPKEY=3808612800100 ,其中有一个文件somefile.properties ,其中SOMEPROPKEY=3808612800100是以毫秒为单位的时间未来,如果值SOMEPROPKEY=23948948过去那么SOMEPROPKEY=23948948包括foldersizesreport.csv的文件夹,因为它与我无关。 所以结果报告应该是这样的: /d/tmp/,subfolder1,<itssizein KB> /d/tmp/,subfolder2,<itssizein KB> 如果subfolder3有一个SOMEPROPKEY=34243234 (以ms SOMEPROPKEY=34243234时间),那么它不会在该csv文件中。 所以基本上我在寻找: find /cygdrive/d/tmp/* -maxdepth 0 -mtime -150 -type d | <only subfolders […]

从SSH-Shell启动Gnome-Application

我的开发服务器有一个运行的Gnome-Desktop。 我通过ssh会话连接到它。 Gnome-Session和ssh会话是以同一个用户运行的。 如何从SSH远程会话启动Gnome应用程序(例如gedit),以便它出现在远程服务器Gnome-Desktop上? 谢谢,Hacksteak25

从命令响应中提取数据并将其存储在variables中

我想在启动过程中使用这样的脚本禁用我的触摸板 #!/bin/bash #确定设备ID ID = $(xinput list | grep -i touchpad) #检查输出 echo $ ID #禁用$ ID标识的设备 #inputset-prop $ ID“设备已启用”0 </ code> 基本上我想从命令的结果中提取“12”(或任何设备号码): xinput列表| grep -i触摸板 ↳↳SynPS / 2 Synaptics触摸板id = 12 [从指针(2)] 并将其存储在variables$ ID中。 下一个命令将禁用该设备。 任何build议,我怎么能实现呢? 谢谢,Udo

星号:找不到命令

我试图运行以下脚本… #!/bin/bash -x ADMIN=..@.com X='asterisk -rx "show channels" | grep -c Zap/' if [$X -ge 4]; then echo "Active Calls: $X" | mail -s "Active Calls: $X" $ADMIN fi 并得到这个错误“ 第5行:[星号:命令未find ” 我真的很新,但理解这可能是一个path问题。 然而,从我运行脚本的同一个目录中,我可以input'asterisk -rx'show cha …'命令,它工作正常。所以不明白为什么shell脚本不能做到这一点? 谢谢!

从文本文件填充MySQL表

这应该是一个容易的。 我需要从文本文件中填充表格。 基本上,我想在一个Linux shell脚本中做到这一点。 谢谢!! 例: MySQL表 项目颜色形状大小 文本文件 汽车蓝色小圆 胡萝卜红色大方块 苹果绿色圆形中等

Shell脚本 – 多次提示shell脚本时inputredirect

我们有一个shell脚本,当有提示时,需要input多个用户input。 首先它可能会要求执行操作。 当给出答案时,它可能会要求用户名,然后密码等。我们要通过提供使用文件redirectinput即脚本<input自动执行此任务。 input文件将具有脚本可能要求的不同问题的所有答案。 然而,它不工作,shell脚本只读取input文件的第一行。 我需要改变或使用什么来完成这项工作?

在rm -rf语句中使用环境variables是不好的做法?

当我将一个variables定义从脚本文件移动到另一个脚本文件以及其他几行代码时,我正在维护一些用于在开发服务器上自动构build的shell脚本。 因此,这一行: WEB=/home/server/web 已从该脚本文件移动到另一个脚本文件中,并且不再位于第一个脚本文件使用的环境中。 因此,在文件的后面, rm -rf $WEB/* 被评估到Linux用户的dreaded命令: rm -rf /* 我的问题是,你会考虑使用环境variables这种不好的做法或被认为是有害的? 像经典之作 if (foo) bar() bar2() 去除variables声明的含义并不是立即显而易见的,并且可以令人惊讶的是, 还是应该在移动这样的东西的时候更加小心呢?