変数構文やその他のコマンドを検索しましたが、渡すことはできません。
btrfsスナップショットを使用して作成されたフォルダがあります。各フォルダには名前付きファイル/etc/fstab
があり、そのファイルを編集して常にフォルダパスの値に置き換える必要があります。@
たとえば、@snapshots/daily/root2020-12-27_19H05
ここの変数には2020-12-27_19H05
常に接頭辞が付きますroot
。
ファイルの編集を始める前の最初のステップは、変数として見つかったすべてのフォルダにルートとしてファイルを生成する単純なbashスクリプトを作成するなどの簡単なタスクを実行することです。
cd /.snapshots/daily
SNAPSHOTS=$(ls -d root*/)
echo > $SNAPSHOTS/test
ただし、次のエラーが発生します。
bash: $SNAPSHOTS/test: ambiguous redirect
私が考えることができるすべての場所で ""、''、()、{}を使用してすべてを試しましたが、すべて失敗しました。いくつかの場所でSUDOを試してみましたが、やはり失敗しました。これはインターネットでよくあるようですが、私が読んだことのどれも私の問題を理解して解決できませんでした。
私は何が間違っていましたか?
ありがとうございます!
ベストアンサー1
SNAPSHOTS
複数のディレクトリを含めることができます。
set -x
コマンドの前に行を挿入して問題を確認できますecho
。が表示されます$SNAPSHOTS
。
ループを使用して、echo
一致する各ディレクトリに対してコマンドを呼び出します。
for i in root*/
do
if [ "$i" != 'root*/' ]
then
touch "$i"/test
fi
done
一致するディレクトリがない場合、アドインはif
実行されません。touch 'root*/test'