質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Q&A

解決済

1回答

435閲覧

bashでfor文を使ってファイルを指定個数複製する

crossism

総合スコア16

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

0グッド

0クリップ

投稿2020/04/27 12:31

初めてbashを書いています。

filename.extensionというファイルをnumber個複製し、それぞれにfilename_number.extensionというファイル名をつけたいです。しかし、最後の1個しか残らず困っています。
つまり、本来なら
filename_1.extension
filename_2.extension
.
.
.
filename_number.extension
の合計number個のファイルが生成されてほしいところで、
filename_number.extension
しか生成されていないということです。

一度文法エラーが出た時はnumber個同じエラーメッセージが出てきたので、cpコマンドは毎回動いているのだと思いますが、上書きされているのか消されているのか他の何かなのかがよくわかりません。初歩的なことかもしれませんが、アドバイスをいただけると幸いです。

func(){ for var in `seq 1 $number` do cp "${filename}.${extension}" 実験用/"${filename}_${number}.${extension}" done } echo "filename" read filename echo "extension" read extension echo "number" read number func

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

${number}というループによって変わらない番号を付けているからです。

${var}というループごとに変わる番号を付けましょう。

というか、変数varを何だと思っていたのでしょうか?

投稿2020/04/27 12:41

otn

総合スコア84507

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

crossism

2020/04/27 12:58

理解できました。迅速な回答ありがとうございます。 以下は備忘録として。 非常に初歩的な間違いで恥ずかしいですが、戒めに一応内訳を書いておきますと、 - numberを繰り返し回数の上限の数値として設定したのに途中で変数と混乱した - なぜ混乱したかというと、varが途中から関数に必要な予約語に見えていて変数という意識が抜けていた - なぜそんなことになったかというと、varを使うプログラミング言語で自力でコードを書いたことがあまりなく、しかし見かけたことはあったので曖昧に予約語のようなイメージがあった といったところでしょうか。 それでもゆっくり一行ずつ見直せば普通に見つけられた気がしますね。焦らないようにしたいです。ないとは思いますが誰かの役にたてば嬉しいです。
otn

2020/04/27 13:08

普通は i とか n というような名前を使うことが多いかと思います。 あるいは、cnt や count とか seq のような意味のある名前を好む人もいます。 書くときに、うっかり間違うというのは上級者でもあるかと思いますが、 初心者は、「自分は間違ってない」あるいは「この中に間違いが無いかも知れない」と思って見るので間違いが見つかりません。 中級者以上は、「絶対この中に間違いが1つ、あるいは2つ以上ある」と思って探すので見つかります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問