1

サブフォルダーを含むフォルダーからすべてのファイルをエコーする単純なbashスクリプトを作成しようとしています。以下は私のコードです。しかし、私が得ている出力はただls$fromFolderです

#! /bin/bash

fromFolder="~/proj/activex"
toFolder="~/proj/outgoing"

files='ls $fromFolder'

for file in $files 
do
    echo $file
done

ありがとう

4

3 に答える 3

3

lsここでコマンドを使用する必要はありません。forループは次のように簡単に置き換えることができます。

for file in ~/proj/outgoing/*
do
   echo $file
done
于 2013-03-19T11:47:15.550 に答える
0
find $fromfolder -print

$fromfolder内のすべてのファイルとサブディレクトリを出力します。

これは通常のファイルを一覧表示します

find $fromfolder -print -type f

これはディレクトリを一覧表示します

find $fromfolder -print -type d

あなたのコードでは-これには問題があります files='ls $fromFolder'

$fromfolder一重引用符のため、bashによってその値に「変換」されることはありません。

于 2013-03-19T11:45:02.797 に答える
-1

シングルの代わりに二重引用符を使用する必要があります。これにより、シェルはfromFolder変数を展開できます。

files="ls $fromFolder"

anubhavaのソリューションは優れていますが

于 2013-03-19T11:48:36.173 に答える