サブフォルダーを含むフォルダーからすべてのファイルをエコーする単純な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によってその値に「変換」されることはありません。
シングルの代わりに二重引用符を使用する必要があります。これにより、シェルはfromFolder変数を展開できます。
files="ls $fromFolder"
anubhavaのソリューションは優れていますが