我正在尝试执行以下操作:
function func() # in practice: logs the output of a code block to a file
{
if [ -z "$c" ]; then
c=1
else
(( ++c ))
fi
tee -a /dev/null
echo "#$c"
}
{
echo -n "test"
} | func
{
echo -n "test"
} | func
但增量不起作用,变量c
保持'1'
我见过this thread,但它对我的情况不起作用 - 当我尝试时,会出现语法错误。
答案 0 :(得分:3)
linked question中的诀窍对我有用:
#!/bin/bash
function func() # in practice: logs the output of a code block to a file
{
if [ -z "$c" ]; then
c=1
else
(( ++c ))
fi
tee -a /dev/null
echo "#$c"
}
func < <(echo -n "test")
func < <(echo -n "test again")
打印:
test#1
test again#2
您使用#!/bin/bash
作为您的shebang吗?如果您使用#!/bin/sh
,则某些bash扩展名(例如<( )
)将无法使用。