bash変数展開の「:」(コロン)演算子とは何ですか:VAR = $ {TEMP:3}


12

の変数の次の行の意味は何bashですか?

VAR=${TEMP:3}

1
@chaos回答をよりよく一致させるために質問を編集しないでください;-)。
Pilot6

@ Pilot6意味は変更していません。それとも私は何か間違ったことを理解していますか?(タイトル)を見つけやすくし、読みやすくしました。: たとえば、BTWには他の意味もあります。たとえば、bash組み込みコマンドです。質問は明らかにそれに関するものではないので、私はそれとは別のものにしたかった。ユーザーが意味するのは、:変数名の中の演算子です。申し訳ありませんが、誰かを困らせたくありませんが、ロールバックは意味をなさないため、元に戻す必要がありますが、ここで編集戦争をしたくありません。さらに、bashとスクリプト固有であるため、これらのタグを削除する理由は何ですか?
カオス

変数を削除しTEMPVAR他の回答が意味を失った方法で質問を変更しました。
Pilot6

@ Pilot6私の答えでは、VAR変数を参照していません。ただし、その1つを元に戻すことは自由です。私は質問をより一般的で、具体性を低くしたかった。他の答えを妨害することを意図したものではありませんでした。
カオス

2
@SnakeDocいいえ、それはすべて右側にトピックだ
muru

回答:


15

これは変数の展開であり、次のように機能します(これはPOSIXシェルでのみ機能しbashksh特定の機能ではないことに注意してください)。

$ x=1234567890
$ echo ${x:3}
4567890
$ echo ${x:7}
890
$ echo ${x:3:5}
45678

  • ${var:pos}は、varoffsetから始まる変数が展開されることを意味しますpos
  • ${var:pos:len}は、varoffsetからposlength で始まる変数が展開されることを意味しますlen

で中華鍋zshあまりにも
コス

2
@kos言及する価値はありません。すべてが正常に機能するためですzsh=)ダイエットスクリプトを作成しzsh、1週間で10kg減量しました。
カオス

zshそれを使用していないときにパスを入力するのは確かにあなたを愚かにさせる:)
コス

1
@kos Hehe、jqueryに少し似ています:meta.stackexchange.com/a/19492
chaos

1
ハ、「jQueryが足りない」ために、質問に実際に答えようとする唯一の答えが-2になったのが大好きです。:)
コス


2

この演算子はvariableの最初の3文字を切り取りTEMP、残りをvariableに割り当てますVAR

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.