小编gho*_*oti的帖子

shell脚本语法:引用数组的变量名

这很接近,但我在循环中引用第二个数组时遇到了麻烦.语法应该是什么样的?$ item返回"1"而不是"a,b,c或d"

colors=( teal purple pink red green darkblue skyblue )
teal=( a b c d )


for color in ${colors[@]}
do
    echo $color

    for item in ${#{$color}[@]}
    do
        echo $item
    done

done
Run Code Online (Sandbox Code Playgroud)

arrays variables bash shell

1
推荐指数
1
解决办法
2277
查看次数

如何将历史记录重定向到文件?

是否可以将命令的输出放入文件中?我试过做一个

echo history > history.txt

但它将文本历史记录改为该文件.

command-line

1
推荐指数
1
解决办法
4893
查看次数

php爆炸并强制数组键从1开始而不是0

我有一个字符串将被爆炸以获得一个数组,并且我们知道,输出数组键将从0开始作为第一个元素的键,1开始为第二个元素,依此类推.

现在如何强制该数组从1开始而不是0?

这对于类型化数组来说非常简单,因为我们可以像这样编写它:

array('1'=>'value', 'another value', 'and another one');
Run Code Online (Sandbox Code Playgroud)

但是对于使用explode动态创建的数组,该怎么做?

谢谢.

php arrays explode array-key

1
推荐指数
1
解决办法
7299
查看次数

如何列出文件内容的选定行?

我想列出从第四行到最后一行的文件内容,然后在第一行到第三行显示内容,并将o/p附加到新文件中.

unix shell

1
推荐指数
1
解决办法
78
查看次数

将唯一文件复制到新位置

我是Linux和bash脚本的新手,我目前很难解决这个问题!

我有一个包含许多图像的目录,我需要将这些图像复制到一个新位置.我知道有很多方法可以解决这个问题,但目前知识非常有限,所以我可能会以错误的方式解决这个问题.

我使用find和cat来创建这个列表,并尝试复制文件,以便在它们存在时比较它们(使用md5和检查文件名).

但是,文本文件上有30个文件,但只复制了18个文件.任何人都可以建议吗?

我找到文件的代码是 -

find $1 -name "IMG_****.JPG" | cat > list.txt
Run Code Online (Sandbox Code Playgroud)

我从列表中复制的代码是

for image in $(cat list.txt);
do
cp $image $2
done
Run Code Online (Sandbox Code Playgroud)

bash

1
推荐指数
1
解决办法
364
查看次数

从bash shell脚本中的整个字符串中提取路径

我需要从字符串中提取路径。我在另一篇文章中找到了示例,但缺少其他步骤。

我有一个字符串如下:

title="test test good dskgkdh hdfyr /rlsmodules/svnrepo/SOURCE/CBL/MQ/BASELINE/MQO000.CBL kdlkfg nsfgf trhrnrt"
cobsrc=$(awk '{match($0,/\/[^"]*/,a);print a[0]}' <<< $title)
echo $cobsrc
Run Code Online (Sandbox Code Playgroud)

输出是

/rlsmodules/svnrepo/SOURCE/CBL/MQ/BASELINE/MQO000.CBL kdlkfg nsfgf trhrnrt
Run Code Online (Sandbox Code Playgroud)

我只需要

/rlsmodules/svnrepo/SOURCE/CBL/MQ/BASELINE/MQO000.CBL
Run Code Online (Sandbox Code Playgroud)

需要什么修改?

关于类似查询的现有帖子: how to extract path from string in shell script

linux string bash shell

1
推荐指数
1
解决办法
1344
查看次数

别名:我如何向背景发送"别名"?

我想将带有输入参数的别名发送到后面

别名:

alias aaa="/script.sh"
Run Code Online (Sandbox Code Playgroud)

用法:

aaa input1 input2 inpu3
Run Code Online (Sandbox Code Playgroud)

现在我可以通过添加"&>/dev/null&"将aaa发送到后台,但是由于输入的原因,将其添加到别名不起作用

aaa input1 input2 inpu3 &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

我到目前为止所尝试的内容:

alias aaa="/script.sh &> /dev/null &"
Run Code Online (Sandbox Code Playgroud)

bash alias

0
推荐指数
1
解决办法
202
查看次数

如何在程序死后重新启动它

我正在写一些像这样的监控程序:

 tail -f /var/log/router-home.log | while read line ; do
   echo "$line" | egrep "MTF_SIP" | cut -b 28- | sed -u 's/#012/\n/g' \
   | egrep "IPP-->Received Event|rvCCConnMdmNewDigitCB|rvCCCallHandleOutOfBandDTMF" \
   | cut -d " " -f 15
 done > /tmp/phone/status &
Run Code Online (Sandbox Code Playgroud)

但是每次logrotation出现时它都会改变/var/log/router-home.log对这个例程的多个进程的杀戮,我无法通过执行一个来检查它的状态ps -e|grep tail

如何监控此例程并在死亡时重新启动它?

bash process

0
推荐指数
1
解决办法
148
查看次数

标签 统计

bash ×5

shell ×3

arrays ×2

alias ×1

array-key ×1

command-line ×1

explode ×1

linux ×1

php ×1

process ×1

string ×1

unix ×1

variables ×1