當前位置:編程學習大全網 - 編程軟體 - linux問題,這道題怎麽寫?

linux問題,這道題怎麽寫?

題主妳好,

${s:1:${#s}}的執行過程是這樣的:

a.先看裏面的${#s},它算的是字符串s的長度, 因為s=123456,所以 ${#s}的結果是6,現在${s:1:${#s}}在變量替換後,變成了:

${s:1:6}

而${s:1:6}其實是壹個字符串截取的表達式, 翻譯過來就是:

"截取變量s中索引值為1到6的子串"

而索引的值壹般是從0開始的, 也就是說123456從左到右每個字符對應的索引分別為012345:

1 2 3 4 5 6

0 1 2 3 4 5

所以1到6的子串就是:

23456

妳可能會發現,1到6明明應該是6個數,但為何最後結果只有5個數, 因為字符串s最大的索引就是5,所以6沒值,也就忽略了,對於shell這樣寫是沒問題的, 也就是說妳將索引值改為1000甚至10000,輸入的值依然是23456,並且不會報錯, 但有些語言如果索引值最大是5, 妳整個1到6是會報錯的.

希望可以幫到題主, 歡迎追問

  • 上一篇:UI設計是幹什麽的?
  • 下一篇:c加加寫自由落體距離公式
  • copyright 2024編程學習大全網