awk '
function p(n,A){
s = n
for(i=2;i<=NF;i++){
s = s "\t" A[i]
A[i] = $i
}
if(n)
print s
}
NR==1{
print
next
}
$1==n{
for(i=2;i<=NR;i++)
A[i] = A[i] ";" $i
next
}
{
p(n,A)
n = $1
}
END{
p(n,A)
}
' file
Попробуйте вместо этого:
myfunction()
{
input=$1
count=$2
ssh user@host <<EOF
if [ $input = "comment" ];then
TotalCount=$count
echo "TotalCount is \$TotalCount"
else
echo "do something"
fi
EOF
}
myfunction comment 2
Обратите внимание, что я добавил обратную косую черту к \$TotalCount
, чтобы предотвратить локальное расширение.
Вы хотите экранировать переменную TotalCount
, потому что эта переменная определяется удаленно. Если $TotalCount
оценивается локально, то, вероятно, ()будет получена пустая строка, что объясняет, почему вы не видите никакого вывода. С другой стороны, переменная count
определяется локально, поэтому вам не нужно ее избегать.