首页 > 解决方案 > 在bash脚本中连接文件cat的字符串

问题描述

我正在从https://unix.stackexchange.com/questions/494143/recursive-shell-script-to-list-files修改这个递归目录爬取脚本

我的计划只是在我的目录中连接文本文件的输出字符串

就像:content+= content + cat file.txt,我觉得我所拥有的并不太远,但现在输出是空白的,我想我误解了如何将 cat 函数与字符串 concat 部分分开

我尝试使用 less 而不是 cat 但这会产生相同的结果我正在关注下面的链接但没有一个示例似乎为我产生输出 如何在 Bash 中连接字符串变量

#! /bin/bash

echo "starting script"
content="start =>"

walk_dir () {    
    shopt -s nullglob dotglob

    for pathname in "$1"/*; do
        if [ -d "$pathname" ]; then
            walk_dir "$pathname"
        else
            case "$pathname" in
                *.txt|*.doc)
                    #printf '%s\n' "$pathname"
                    content+=(cat "$pathname") #add file contents to the previous string
                
            esac
        fi
    done
    echo "$content"

}
DIR=/c/Users/xxxx/Desktop/xxxx

walk_dir "$DIR"

bash 脚本很新,但是

标签: bashunixdirectory

解决方案


快速浏览一下-我认为您在 concat 中缺少 $ 符号。

content+=$(cat "$pathname")

或者,您可以使用反引号而不是不带 $ 的括号。


推荐阅读