這裏是PHP行:如何在bash中創建這個PHP行的等價物?
intval(substr($strIn,$i, 2), 32);
我試圖將其轉換爲慶典,首先我知道這是不是必要的,因爲bash中如何處理變量intval
,所以我不需要在第一部分中,不過,我已閱讀有關substr
,但我無法弄清楚它在這種情況下的作用。有誰知道bash中的等價物是什麼?
這裏是PHP行:如何在bash中創建這個PHP行的等價物?
intval(substr($strIn,$i, 2), 32);
我試圖將其轉換爲慶典,首先我知道這是不是必要的,因爲bash中如何處理變量intval
,所以我不需要在第一部分中,不過,我已閱讀有關substr
,但我無法弄清楚它在這種情況下的作用。有誰知道bash中的等價物是什麼?
substr($strIn, $i, 2)
從$strIn
返回2個字符,從偏移量$i
開始。例如,substr('foobar', 3, 2)
返回'ba'
。
在bash相對應的是:
STR=foobar
echo ${STR:3:2}
如果起始偏移是不固定的,但它被存儲在一個變量,然後它就像這樣:
STR=foobar
i=2
echo ${STR:$i:2} # It displays: ob
來實現,這是另一種方式使用剪切:
SUBSTR($〜應變,$ I,$長度)當量:
end=$(expr $i + $length)
echo $strIn | cut -b $i-$end
PHP是鬆散類型的;有幾次您需要明確地將字符串轉換爲與intval()
的整數。但是,其中一種情況是,如果您使用不同的基數。需要注意的第二個參數是intval()
32,這意味着它正在從底部32當然轉換時,bash也能做到這一點:這是使用bash-specific base conversion並不見得會在其他炮彈工作
strIn=foobar
i=2
echo $((32#${strIn:$i:2}))
注意。
測試結果:
mike ~ $ php -a
Interactive shell
php > $strIn = 'foobar';
php > $i = 4;
php > echo intval(substr($strIn,$i, 2), 32);
347
php > exit
mike ~ $ strIn="foobar"
mike ~ $ i=4
mike ~ $ echo $((32#${strIn:$i:2}))
347
mike ~ $
如果你讀過['substr'(http://php.net/manual/en/function.substr.php)文檔和['intval' ](http://php.net/manual/en/function.intval.php)也有,這裏有什麼不明確的地方? –
我想你不明白'intval()'在做什麼,所以我添加了一個實際上是PHP的bash等價的答案。 – miken32