bash - 为什么函数变量在函数内的命令替换中不起作用?
问题描述
我在 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)"
解决方案
我认为您应该将第三行更改为:
linecount="$(echo "${output}" | wc -l)"
# OR alternatvely:
# linecount="$(wc -l < <(echo "$output"))"
推荐阅读
- android - 在 react-native-map 中切换 maptype
- node.js - 有什么东西可以跟踪我安装的 npm 包并在不同的开发环境中恢复它们吗?(如“恢复 NuGet 包”)
- asterisk - 如何在 Asterisk 15 中制作 H.323 中继
- python - Anaconda 环境:基础环境只是浪费空间吗?
- matlab - 为什么从 Matlab 转换为 Scilab 时出现“输出参数数量错误”错误?
- ruby-on-rails - 无法在 ubuntu 上加载 nokogiri gem 问题
- git - 我可以看到表格格式的 git log
- c# - 编译 C# Visual Studio 2019
- javascript - 反应路由器 - 从外部组件导航时页面不会改变
- c++ - (C++) 使用大括号和右值初始化时出现内部编译器错误