首页 > 解决方案 > 为什么函数变量在函数内的命令替换中不起作用?

问题描述

我在 bashrc 文件中运行它

function simplefunc () {
    output=$(ls -1 "$HOME")
    linecount=$(${output} | wc -l)

    echo "${linecount}"
    echo "${output}"
}

收到此错误

Desktop: command not found
0
Desktop
Documents
Downloads
Music
Pictures
Public
snap
SoftMaker
Templates
venv
Videos

我也试过这些

将“本地”放在变量之前或

# linecount=$(output | wc -l)
# echo "$(${output} | wc -l)"

标签: bashcommand-substitution

解决方案


我认为您应该将第三行更改为:

linecount="$(echo "${output}" | wc -l)"
# OR alternatvely:
# linecount="$(wc -l < <(echo "$output"))"

推荐阅读