シェルスクリプトを教えてください。


下記の●を変数とし、1から600の値でコマンドを実行するスクリプト
---------------------------------------------
hrfs_newfs /dev/jb0/r●A /cdlibs /cdroms/cd●
---------------------------------------------
を ● = 1 〜 600 の値で以下のように実行したい。
---------------------------------------------
hrfs_newfs /dev/jb0/r1A /cdlibs /cdroms/cd1
hrfs_newfs /dev/jb0/r2A /cdlibs /cdroms/cd2
hrfs_newfs /dev/jb0/r3A /cdlibs /cdroms/cd3
 :
 :
hrfs_newfs /dev/jb0/r600A /cdlibs /cdroms/cd600
---------------------------------------------

cshとshの場合で、それぞれスクリプトの内容を教えてください。
よろしくお願いします。
OSは Solaris 2.5.1 です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:Kumappus No.1

回答回数3784ベストアンサー獲得回数185

ポイント100pt

http://www.rhythm-cafe.com/shell/Default.aspx

�V�F���X�N���v�g ���t�@�����X & Tips

shの場合:

#!/bin/sh

i=1;

while [ $i -lt 600 ]

do

hrfs_newfs /dev/jb0/r${i}A /cdlibs /cdrom/cd${i}

done

cshの場合:

#!/bin/csh

set i=1

while ($i <= 600)

hrfs_newfs /dev/jb0/r${i}A /cdlibs /cdrom/cd${i}

@ i++

end


どちらも先頭の#!/bin/sh #!/bin/cshはSolarisで正しいパスかどうか確認してください。

id:jigaku

cshの場合でうまくいきました!本当に助かりました!

2005/09/06 22:13:40
id:makeworld No.2

回答回数75ベストアンサー獲得回数23

ポイント50pt

http://www.hatena.ne.jp/1126009324#

人力検索はてな - シェルスクリプトを教えてください。 下記の●を変数とし、1から600の値でコマンドを実行するスクリプト --------------------------------------------- hrfs_newfs /dev/..

URLはダミーです。


手元にLinuxしかなかったので、Solarisでは確認していません。

たぶん動くと思います。実行時はechoをはずしてください。


#!/bin/sh


for i in `seq 1 600`; do

echo hrfs_newfs /dev/jb0/r$i””A/cdlibs /cdroms/cd$i

done


#!/bin/csh


foreach i ( `seq 1 600` )

echo hrfs_newfs /dev/jb0/r$i””A/cdlibs /cdroms/cd$i

end

id:jigaku

回答ありがとうございます。

両方試したのですが、『seq: コマンドが見つかりません』となってしまいました。

---

Kumappusさんのcshを利用させてもらいます。

ありがとうございました。

2005/09/06 22:37:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません