相关疑难解决方法(0)

如何从命令行获取Linux中的CPU /核心数?

我有这个脚本,但我不知道如何获得打印输出中的最后一个元素:

cat /proc/cpuinfo | awk '/^processor/{print $3}'
Run Code Online (Sandbox Code Playgroud)

最后一个元素应该是CPU的数量减去1.

linux bash cpu

510
推荐指数
15
解决办法
59万
查看次数

如何检查进程ID(PID)是否存在

在bash脚本中,我想执行以下操作(在伪代码中):

if [ a process exists with $PID ]; then

    kill $PID 

fi
Run Code Online (Sandbox Code Playgroud)

条件语句的恰当表达式是什么?

bash pid process

169
推荐指数
7
解决办法
25万
查看次数

使用xargs调用shell函数

我试图使用xargs并行调用更复杂的函数.

#!/bin/bash
echo_var(){
    echo $1
    return 0
}
seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {} 
exit 0
Run Code Online (Sandbox Code Playgroud)

这将返回错误

xargs: echo_var: No such file or directory
Run Code Online (Sandbox Code Playgroud)

关于如何使用xargs来完成此任务或任何其他解决方案的任何想法都将受到欢迎.

bash xargs sh

146
推荐指数
3
解决办法
5万
查看次数

获取后台进程的退出代码

我有一个命令CMD从我的主要bourne shell脚本调用,需要永远.

我想修改脚本如下:

  1. 并行运行命令CMD作为后台进程($ CMD&).
  2. 在主脚本中,每隔几秒就有一个循环来监视生成的命令.该循环还将一些消息回显到stdout,指示脚本的进度.
  3. 当生成的命令终止时退出循环.
  4. 捕获并报告生成进程的退出代码.

有人能指点我完成这个吗?

unix linux shell process

112
推荐指数
6
解决办法
13万
查看次数

从Bash数组中删除元素

我需要从bash shell中的数组中删除一个元素.一般来说,我只是这样做:

array=("${(@)array:#<element to remove>}")
Run Code Online (Sandbox Code Playgroud)

不幸的是,我想删除的元素是一个变量,所以我不能使用上一个命令.在这里举个例子:

array+=(pluto)
array+=(pippo)
delete=(pluto)
array( ${array[@]/$delete} ) -> but clearly doesn't work because of {}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

arrays variables bash

91
推荐指数
6
解决办法
11万
查看次数

BASH - 检查PID是否存在

我想停止执行BASH脚本,直到进程关闭(我将PID存储在变量中).我在想 __CODE__

我见过的大多数例子都使用/ dev/null,它似乎需要root.有没有办法在不需要root的情况下执行此操作?

非常感谢你提前!

bash shell pid

21
推荐指数
4
解决办法
4万
查看次数

如何在shell脚本中使用并行执行?

我有一个C shell脚本,它执行以下操作:

#!/bin/csh
gcc example.c -o ex
gcc combine.c -o combine
ex file1 r1     <-- 1
ex file2 r2     <-- 2
ex file3 r3     <-- 3
#... many more like the above
combine r1 r2 r3 final
\rm r1 r2 r3
Run Code Online (Sandbox Code Playgroud)

有一些办法可以让线1,23在运行并行而不是一个接另一个?

unix parallel-processing shell csh

19
推荐指数
3
解决办法
3万
查看次数

在命令运行时执行bash循环

我想构建一个执行命令的bash脚本,同时执行其他操作,如果脚本被杀死,可能会杀死命令.比如说,执行大文件的cp并同时打印自复制开始以来经过的时间,但是如果脚本被杀死它也会杀死副本.我并不想用rsync的,原因有二:1)是缓慢的,2)我想学习如何做到这一点,它可能是有用的.我试过这个:

until cp SOURCE DEST
do
#evaluates time, stuff, commands, file dimensions, not important now
#and echoes something
done
Run Code Online (Sandbox Code Playgroud)

但是它没有执行do - done块,因为它正在等待副本结束.你能建议一下吗?

bash shell

19
推荐指数
2
解决办法
3万
查看次数

Shell Scripting:使用xargs执行shell函数的并行实例

我试图使用xargs的在shell脚本来运行我在同一个脚本中定义一个函数的并行实例.该函数次页面的抓取,所以很重要的是,网页实际上是在并行处理同时获取,而不是在后台进程(如果我的这种认识是错误的,还有两者之间的微小差别,只是让我知道) .

功能是:

function time_a_url ()
{
     oneurltime=$($time_command -p wget -p $1 -O /dev/null 2>&1 1>/dev/null | grep real | cut -d" " -f2)
     echo "Fetching $1 took $oneurltime seconds."
}
Run Code Online (Sandbox Code Playgroud)

怎样才能用,可以采取的次数并行运行time_a_url作为自变量的形式xargs的管做到这一点?是的,我知道GNU平行的,我只是没有安装在那里我写这个软件的特权.

bash shell xargs

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

同时执行多个shell脚本

我想做以下事情:

  • 同时执行多个shell脚本(此处为2个脚本).

  • 等到两个脚本完成

  • 转储每个脚本的返回值

但是,main.sh不能按预期工作.


main.sh

#!/bin/bash

ret1=`./a.sh` &
ret2=`./b.sh`

if [ "${ret1}"="" -a "${ret2}"="" ]; then
   sleep 1
else
   echo ${ret1},${ret2}
end
Run Code Online (Sandbox Code Playgroud)

#!/bin/bash
sleep 10
echo 1
Run Code Online (Sandbox Code Playgroud)

b.sh

#!/bin/bash
sleep 5
echo 2
Run Code Online (Sandbox Code Playgroud)

parallel-processing bash shell

9
推荐指数
3
解决办法
2万
查看次数

标签 统计

bash ×8

shell ×6

linux ×2

parallel-processing ×2

pid ×2

process ×2

unix ×2

xargs ×2

arrays ×1

cpu ×1

csh ×1

sh ×1

variables ×1