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

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

新規登録して質問してみよう
ただいま回答率
85.30%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Q&A

2回答

2483閲覧

シェルスクリプトの変数には型が無いのですか?

iii

総合スコア29

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

0グッド

0クリップ

投稿2019/01/29 07:35

シェルスクリプトの変数について調べていたところ、
シェルスクリプトの変数には型が無いという情報が出てきたのですが
その通りなのでしょうか?
int型などの型は無いということでしょうか。

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

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

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

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

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

guest

回答2

0

シェルに依ります。
オリジナルのshには型はありません。あるいは、常に文字列型です。

Bashの場合だと、
・普通の変数(文字列)
・配列(数値添え字)
・連想配列(文字列添え字)(他言語のハッシュ、辞書)
・整数
の型があります。連想配列と整数の変数は宣言が必須です。

Bash

1<普通の変数> 2A=1 3A=A+2 4echo $A ・・・A+2 と表示 5A=1 6A=$A+2 7echo $A ・・・1+2 と表示 8 9<整数型変数> 10declare -i B 11B=1 12B=B+2 13echo $B ・・・3 と表示 14 15<配列> 16C[foo]=bar 17declare -p C ・・・ C='([0]="bar")' と表示(未定義のfooはゼロと見なされるため) 18echo ${C[0]} ・・・ bar と表示 19C=(x y z) 20echo ${C[1]} ・・・ y と表示 21 22<連想配列> 23declare -A D 24D[foo]=bar 25declare -p D ・・・ D='([foo]="bar" )' と表示 26i=foo 27echo ${D[$i]} ・・・ bar と表示

普通の変数でも、数値演算は可能です。

Bash

1A=1 2let A=A+2 3echo $A ・・・ 3 と表示

投稿2019/01/29 08:06

otn

総合スコア86316

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

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

0

ありません。基本、文字列です。

$(( ))で算術展開を行うことで、整数の計算はできますが、浮動小数点などはありません。(bcやawkに頼るならまた話は変わります。)

存在したようです。勉強になりました。

ただ、存在することと使いやすいかどうかは別問題…(苦しまぎれ

投稿2019/01/29 07:39

編集2019/01/29 08:44
kazto

総合スコア7196

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

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

iii

2019/01/29 07:45

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問