お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-10-08 09:52:12

pirupiru
メンバ
登録日: 2009-01-01

シェルスクリプトについて

最近、始めてシェルスクリプトの勉強を始めました。

スクリプトに渡す引数を出力したいと思い、
echo $1
echo $2
echo $3

とかくと、スクリプトに渡した引数が出力されます。

これを、for文で書くと
for  i in 1 2 3
do
echo $i
done
とねるのですが、これでは1,2,3が出力されてしまいます。
どうなおしたらいいのでしょうか?

オフライン

 

#2 2010-10-08 10:10:02

weyk
メンバ
登録日: 2009-04-03

Re: シェルスクリプトについて

答えでは有りませんが。

 シェルスクリプトで色々とする時には、set -xや、set -nを活用すると良いですよ
 また、変数がどう置き換わるかは、順に考えれば、「ああ、書いたとおり動いているなぁ」というのは判るかと思います。
# iというシェル変数に「1」が入った状態で、「$i」は「1」の意味(「echo i」なら、そのまま「i」が表示されます)。・・・とすると、以前に引数の内容の表示の際に指定したのは「$1」なので、そもそも「$」1つ足りていません。これを解決した上で、さらに、うまく出ない(エラーになるなり、違う値が出るなり)というのを調べて・・・と成るかと思います。

※コンピュータ用の言語で何かをさせる力は、うまく動かない時に調べて動かせる能力と思っています。学習が目的であるなら、ここで「どう直したらよいのか」を聞いてしまうと、おそらく、異なる問題のたびに聞いて回ることになります。(自分なりの)調べ方のほうを修得するつもりで取り組むと良いかと思います。学習ではなく、「○○を作るのが目的」なら、直し方/作り方を聞いてしまったほうが早いです。あとは、既存のスクリプトを多量に読むことです。既存のコマンドも、実は、シェルスクリプトだったりすることが多いですし(PerlやPythonで書かれたものも少なからずあるので侮れないですが・・・)

オフライン

 

#3 2010-10-08 12:22:32

koisan1949
メンバ
From: Hyogo, Japan
登録日: 2007-11-11

Re: シェルスクリプトについて

weykさんの言われている様に、回答を聞いてしまうと後々苦労しますよ。
自分で検索して参考事例を読み解くとか、参考書で調べて勉強するのが習得の近道です。

取り敢えず、一例ですが入門書を紹介しておきます。
https://forums.ubuntulinux.jp/viewtopic … 657#p36657

オフライン

 

#4 2010-10-08 13:40:48

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: シェルスクリプトについて

pirupiru による投稿:

最近、始めてシェルスクリプトの勉強を始めました。

スクリプトに渡す引数を出力したいと思い、
echo $1
echo $2
echo $3

とかくと、スクリプトに渡した引数が出力されます。

これを、for文で書くと
for  i in 1 2 3
do
echo $i
done
とねるのですが、これでは1,2,3が出力されてしまいます。
どうなおしたらいいのでしょうか?

普通は

コード:

for  i in $*
do
echo $i
done

だろうと思います。

オフライン

 

Board footer

Powered by FluxBB