为什么我的变量的结果在终端输出。 Bash

Why is the result of my varible being output in terminal. Bash

#!/bin/bash

main (){
    totalnumber
    totalfiles
}

totalnumber (){
    TNUM= ls -1 | wc -l
}

totalfiles (){
    FNUM= ls -l | grep ^d | wc -l
}

main

这是我的脚本,无论何时我在一个包含 2 个文件和 2 个文件的文件夹中运行它,它都会输出 4 和 2,但我现在还不想在终端中输出这些文件。我该如何阻止它?

因为你实际上并没有用这些

分配结果
TNUM= ls -1 | wc -l

FNUM= ls -l | grep ^d | wc -l

做:

TNUM=$(ls -1 | wc -l)

FNUM=$(ls -l | grep ^d | wc -l)

分配结果。

#!/bin/bash

main (){
    totalnumber
    totalfiles
}

totalnumber (){
    TNUM=$(ls -1 | wc -l)
}

totalfiles (){
    FNUM=$(ls -l | grep ^d | wc -l)
}

main

如果你愿意

echo $TNUM
echo $FNUM

调用 main 后,您将看到您的输出。