Articles of shell

在busybox sh中,不能递增填充8的数字

这是我用来保存照相机文件的代码,并从0001开始命名。 相机正在运行Busybox,并且里面有一个灰壳。 代码是基于查尔斯·达菲在此之前的回答。 #!/bin/sh # Snapshot script cd /mnt/0/foto sleep 1 set — *.jpg # put the sorted list of picture namefiles on argv ( the number of files on the list can be requested by echo $# ) while [ $# -gt 1 ]; do # as long as there's more than one… shift […]

如何通过unix中的数据来validation组的数量

我有一个logging列表如下 资源: a,yes a,yes b,No c,N/A c,N/A c,N/A d,xyz d,abc d,abc 输出: a, Yes 2 b, No 1 c, N/A 3 d, xyz 1 d, abc 2 c, N/A "File is not correct" 这里的“是”和“否”是可以接受的单词,如果其他的单词数大于单个$ 1值的“是”或“否”字数,那么我们发出一个类似“文件不好” 我已经尝试了下面的脚本 awk -F, '{a[$1]++;}END{for (i in a)print i, a[i];}' filetest.txt

ssh从php访问ec2

从本地ubuntu linux机器通过ssh连接ec2机器访问。 当我从terminal运行这个PHP脚本它执行得很好,并在文件中写入尾部的条目。 当我从浏览器运行得到这个错误在Apache错误日志 ssh:无法parsing主机名称proxy2:名称或服务未知 发现它由于Apache用户权限问题。 不pipe我的猜测是对还是错,我都不确定。 任何人都可以帮助我解决这个问题。 php代码: – <?php $ss = 'ssh proxy2 '.'tail -n 3 /out/speed_log.txt.1'.' > proxy2temp1'; system($ss); ?>

在shell脚本中使用cd和cd命令是另一个目录中的一些计算的好方法

我在我的shell脚本中使用cd进入一个计算目录,并再次使用cd – 返回。 这是一个很好的使用方法吗? 我的脚本是: input_dir=/home/abc/2001/01/ cd $input_dir #Execute some programm with ifile.txt eg awk '$1 > 99 {printf "%.2f" "$1"}' ifile.txt > ofile.tx cd – 或者我们应该总是提到path名? 喜欢: input_dir=/home/abc/2001/01/ awk '$1 > 99 {printf "%.2f" "$1"}' $input_dir/ifile.txt > $input_dir/ofile.txt 你能否build议如果有什么简单的方法来减less文本?

如何在bash中间接地分配一个variables来从Standard In,File和执行输出中获取多行数据

我在这里和其他地方发现了许多片段,回答了这个问题的一部分。 我甚至设法以低效的方式在很多步骤中做到这一点。 如果可能的话, 我真的很想find执行这个任务的单行执行 ,而不是分配给一个variables,并复制它几次来执行任务。 例如 executeToVar () { # Takes Arg1: NAME OF VARIABLE TO STORE IN # All Remaining Arguments Are Executed local STORE_INvar="${1}" ; shift eval ${STORE_INvar}=\""$( "$@" 2>&1 )"\" } 总的来说,如果$ executeToVar SOME_VAR ls -l * #实际上会填充SOME_VAR和从其余参数中取出的ls -l *命令执行的输出。 但是,如果命令在最后输出空行,(对于例如- echo -e -n '\n\n123\n456\n789\n\n'应该在开始和结束处具有2个新行)这些被bash的子执行过程所剥夺。 我在其他类似的post中看到,通过在stream的末尾添加一个标记“x”来解决这个问题,例如将子执行转化为如下forms: eval ${STORE_INvar}=\""$( "$@" 2>&1 ; echo […]

阅读pdf文件的内容

有没有一个命令行工具来读取Linux上的PDF文件。请为此指出适当的url。 谢谢..

在Unix中对find命令进行sorting以遵守自定义顺序

我有一个脚本,输出文件path(通过find ),我想基于非常具体的自定义逻辑进行sorting : 第一个sorting键:我希望第二个和第三个分隔的字段(如果存在的话)使用基于我提供的键列表的 自定义sorting进行sorting – 但不包括数字后缀。 通过下面的示例input,密钥列表是: rp,alpha,beta-ri,beta-rs,RC 第二sorting键:按每行的结尾数字进行数字sorting。 给出以下示例input(注意每行的/foo/bar/test/example/8.2.4.0前缀是附带的): /foo/bar/test/example/8.2.4.0-RC10 /foo/bar/test/example/8.2.4.0-RC2 /foo/bar/test/example/8.2.4.0-RC1 /foo/bar/test/example/8.2.4.0-alpha10 /foo/bar/test/example/8.2.4.0-beta-ri10 /foo/bar/test/example/8.2.4.0-beta-ri2 /foo/bar/test/example/8.2.4.0-beta-rs10 /foo/bar/test/example/8.2.4.0-beta-rs2 /foo/bar/test/example/8.2.4.0-alpha2 /foo/bar/test/example/8.2.4.0-rp10 /foo/bar/test/example/8.2.4.0-rp2 我预计: /foo/bar/test/example/8.2.4.0-rp2 /foo/bar/test/example/8.2.4.0-rp10 /foo/bar/test/example/8.2.4.0-alpha2 /foo/bar/test/example/8.2.4.0-alpha10 /foo/bar/test/example/8.2.4.0-beta-ri2 /foo/bar/test/example/8.2.4.0-beta-ri10 /foo/bar/test/example/8.2.4.0-beta-rs2 /foo/bar/test/example/8.2.4.0-beta-rs10 /foo/bar/test/example/8.2.4.0-RC1 /foo/bar/test/example/8.2.4.0-RC2 /foo/bar/test/example/8.2.4.0-RC10

如何在linuxterminal上通过卷ID获得ubi卷名?

我们在ubi0上有4个卷,我想在运行时(dynamic)重命名卷名。 我发现一个选项就像获取相应的卷和parsing结果的ubinfo来获取卷名称。 example: ubi0 ubi0_0: Name: name1 ubi0_1: Name: name_2 ……….. like this till ubi0_4. 说如果我想获得卷2的名称然后 ubinfo -d 0 -n 2 |grep "Name:" | sed -e 's|Name:||' -e 's/^ *//' name_2 command details: -d <UBI device number> —–> ubi0(0) -n <volume ID> ——-> 2 ouptut of ubinfo -d 0 -n 2 Volume ID: 2 (on […]

用户input不是在CentOS7中使用systemctl或服务命令

我试图使用systemctl或服务命令来停止系统服务。 该命令如下 systemctl start service_name or service service_name start 在这种停止方法中,要求用户input不在控制台上显示的密码(怀疑在后台运行)。 停止方法如下 stop() { read -s -p "Please provide password to stop the service" passwd } 在CentOS 6中使用服务命令也一样,它在控制台上显示并input。 任何人都可以请build议我,我错过了这里提示或如何可以提示用户使用systemctlinput。

检查是否存在wget / curl

试图做一个脚本来使用wget下载文件,或者如果在Linux中不存在wget,则会curl。 如何让脚本检查wget的存在?