支柱の拡張なしのループ

支柱の拡張なしのループ

BashベースのブラックボックスCLIを使用していますが、何が利用できるのかは全くわかりません。中かっこ拡張は機能せず、引数を明示的にリストせずに繰り返す機能があり、これは最初にループで避けようとしたものです。

for x in {1..5}
do
    for y in {a..c}
    do
    echo $HOME$x$y
    done
done

中括弧を拡張せずにパラメータを明示的に一覧表示せずに、このようなタスクを実行するにはどうすればよいですか?環境変数も機能する必要があるため、例$HOMEにランダム変数を追加しました。

何がうまくいき、何がうまくいかないのか完全にはわかりませんので、他の選択肢(AWK、sed)を自由に提案してください。

ベストアンサー1

jotコメントに従って使用することをお勧めします。以下は(あまりきれいではない)awk実装です。

#!/usr/bin/awk -f
BEGIN{
    for(i=1;i<5;i++)
        for(j=97;j<100;j++)
            printf "%s%d%c ",ENVIRON["HOME"],i,j;                               
    print;
}

-vまたは(オプションを使用してシェル変数を変数に割り当てることもできます)awkawk

#!/bin/bash
awk -f /dev/fd/3 3<< EOF                                                                                                                                                                                    
BEGIN{
    for(i=1;i<5;i++)
        for(j=97;j<100;j++)
            printf "$HOME%d%c ",i,j;
    print;
}
EOF

おすすめ記事