下記の●を変数とし、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 です。
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
http://www.sfc.keio.ac.jp/mchtml/cns-guide/2001/3/5/2.html#SECTI...
5.2 $B%9%/%j%W%H$HJQ?t(B
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で正しいパスかどうか確認してください。
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
回答ありがとうございます。
両方試したのですが、『seq: コマンドが見つかりません』となってしまいました。
---
Kumappusさんのcshを利用させてもらいます。
ありがとうございました。
cshの場合でうまくいきました!本当に助かりました!