据我所知,有两种方法可以在bash函数中创建局部变量:创建一个子shell或将每个变量声明为本地变量。 例如: # using local
function foo
{
local count
for count in $(seq 10)
do
echo $count
done
}
或 # using subshell
function
我在apache2中运行一个带有外部重写程序(prg)的重写映射,可能会产生错误并死亡。 当重写映射不再运行时,系统显然无法正常工作。 所以我想开始本身进行地图程序(这是用PHP编写的),并重新启动它,如果它死了一个简单的包装外壳脚本: #!/bin/bash
until /usr/bin/php /somepath/mymap.php; do
echo "map died but i
一个人为的例子...给出 FOO="/foo/bar/baz"
这工作(在bash) BAR=$(basename $FOO) # result is BAR="baz"
BAZ=${BAR:0:1} # result is BAZ="b"
这并不 BAZ=${$(basename $FOO):0:1} # result is bad substitution
我的问题是哪个规则导
比方说,我有一个bash函数 Yadda() {
# time-consuming processes that must take place sequentially
# the result will be appended >> $OUTFILE
# $OUTFILE is set by the main body of the script
# N
我写了下面的代码现在 var=0
cat $file | while read line do
var=$line
done
echo $var
据我了解管道(|)将导致一个子shell中创建的,因此上线变量var 1将在最后一行具有相同的值。 然而,这将解决这个问题: var=0
while read line do
var=$line
done < $file