前提・実現したいこと
Linuxで、
コマンドライン引数で整数を渡した後、"begin"ディレクトリを作成して、
渡された引数の回数分だけ"begin"ディレクトリ以下にディレクトリを生成します。
生成されたディレクトリに順序分(インデックス分)の数のファイルを生成する(中身はなし)仕様のスクリプトを作りたいです。
イメージ的にこういう風です。
- begin
∟ directory-1
∟ file-1
∟ directory-2
∟ file-1
∟ file-2
∟ directory-3
∟ file-1
∟ file-2
∟ file-3
発生している問題・エラーメッセージ
私のプログラムをもっとシンプルにしたくて(できればfor loopを二回使わない)、seq は必須で使いたいです。
あまり複雑にはしたくないです。文を多くしたくないです。
該当のソースコード(プログラムは動きます)
#!/bin/bash
mkdir begin
for i in seq $1
;
do
mkdir begin/dir-$i
for ((j=1; j<=i; j++));
do
echo s> begin/dir-$i/file-$j
done
done
試したこと
for i in seq $1
;
do
mkdir begin/directory-$i
touch /directory-$i/file-$((i++))
done
のようにインクリメントを使う方法一番だと思うのですが、ファイルは生成されず、
no such file or directoryというエラーが出たり、no commandというエラーになります。
ただプログラムが動けばいいというわけではなく、なるべくシンプルにしたいです。
補足情報(FW/ツールのバージョンなど)
seq という連番機能は外さずにファイルやディレクトリ生成を目的にしています。
forを一回で済ませる方法を探しています。(シンプルにするために)
sh dir.sh xxx y →渡した引数は2
みたいにスクリプトを再生する際入力した引数を整数で、回数分反映するようにします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/13 22:22