我有这个脚本,但我不知道如何获得打印输出中的最后一个元素:
cat /proc/cpuinfo | awk '/^processor/{print $3}'
Run Code Online (Sandbox Code Playgroud)
最后一个元素应该是CPU的数量减去1.
在bash脚本中,我想执行以下操作(在伪代码中):
if [ a process exists with $PID ]; then
kill $PID
fi
Run Code Online (Sandbox Code Playgroud)
条件语句的恰当表达式是什么?
我试图使用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来完成此任务或任何其他解决方案的任何想法都将受到欢迎.
我有一个命令CMD从我的主要bourne shell脚本调用,需要永远.
我想修改脚本如下:
有人能指点我完成这个吗?
我需要从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)
任何的想法?
我想停止执行BASH脚本,直到进程关闭(我将PID存储在变量中).我在想
__CODE__
我见过的大多数例子都使用/ dev/null,它似乎需要root.有没有办法在不需要root的情况下执行此操作?
非常感谢你提前!
我有一个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,2并3在运行并行而不是一个接另一个?
我想构建一个执行命令的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块,因为它正在等待副本结束.你能建议一下吗?
我试图使用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平行的,我只是没有安装在那里我写这个软件的特权.
我想做以下事情:
同时执行多个shell脚本(此处为2个脚本).
等到两个脚本完成
转储每个脚本的返回值
但是,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)
#!/bin/bash
sleep 5
echo 2
Run Code Online (Sandbox Code Playgroud)