我正在尝试创建一个简单的 bash 脚本,它将回显文件夹中的所有文件,包括子文件夹。以下是我的代码。但我得到的输出只是 ls $fromFolder
#! /bin/bash
fromFolder="~/proj/activex"
toFolder="~/proj/outgoing"
files='ls $fromFolder'
for file in $files
do
echo $file
done
谢谢
我正在尝试创建一个简单的 bash 脚本,它将回显文件夹中的所有文件,包括子文件夹。以下是我的代码。但我得到的输出只是 ls $fromFolder
#! /bin/bash
fromFolder="~/proj/activex"
toFolder="~/proj/outgoing"
files='ls $fromFolder'
for file in $files
do
echo $file
done
谢谢
这里不需要使用ls
命令。您可以简单地将 for 循环替换为:
for file in ~/proj/outgoing/*
do
echo $file
done
find $fromfolder -print
将打印 $fromfolder 中的所有文件和子目录。
这列出了常规文件
find $fromfolder -print -type f
这列出了目录
find $fromfolder -print -type d
在你的代码中——这有问题
files='ls $fromFolder'
$fromfolder
由于单引号,bash永远不会被“翻译”成它的值。
您需要使用双引号而不是单引号,这将允许 shell 扩展 fromFolder 变量:
files="ls $fromFolder"
虽然anubhava的解决方案更好