- 在python中實現這一功能非常簡單,python中默認就定義了這幾個函數,方便數據類型的轉換,如:str() 、int()
- 在shell中如何實現數據類型的轉換?在shell中好像也沒有太多的類型
- 我想,在編寫linux系統的shell腳本時,我們經常會碰到需要進行數據類型的時候,下面是我自己在網上找到的一些方法,整理一下分享一下,希望能對大家有所幫助,哈哈
-
數據類型轉字符類型,是比較常見的,也是比較容易實現的。大多時候系統能夠自動進行轉換,如:
# 變量 num 賦值為整數2,但 echo 輸出時已被當成字符串。 [root@lbcsvr ~]# num=$((1+1)) [root@lbcsvr ~]# echo ${num} # 當然我們也可以強制進行轉換,如: # 通過與空字符串進行連接,強化將變量num轉換為字符型 [root@lbcsvr ~]# echo ${num}""
上面的方法同樣適用於各種浮點數類型轉字符類型,如:
[root@lbcsvr ~]# num=`awk 'BEGIN{print 7.01*5-4.01}'` [root@lbcsvr ~]# echo ${sum} [root@lbcsvr ~]# echo ${sum}""
-
字符類型轉數值類型
反過來,字符類型轉數值類型也是可以實現的。
如:
# 我發現date命令輸出的雖然是字符串,但是可以直接運算耶 [root@lbcsvr ~]# date 2020年 04月 13日 星期一 00:16:13 CST [root@lbcsvr ~]# n1=`date | awk -F[:\ ] '{print $7}'` # 提取字符串並賦值 [root@lbcsvr ~]# n2=`date | awk -F[:\ ] '{print $7}'` [root@lbcsvr ~]# echo $[ n2 - n1 ] 6 # 那么如果想要進行字符類型轉數值類型的話,可以這樣: [root@lbcsvr ~]# n1=`date | awk -F[:\ ] '{print $7}'` [root@lbcsvr ~]# n1=$((n1+0)) # 進行運算n1加上0的結果再賦值給n1,值不會改變
-
日期型轉數值
日期型轉數值主要是通過date命令來實現來的。
命令:date -d "2018-07-24" +%s
參數 "%s" 的作用是將-d參數后的日期轉換成自UTC時間(1970-01-01 00:00:00)以來所經過的秒數。
[root@lbcsvr ~]# date -d '2018-07-24' +%s 1532361600
-
日期型轉字符
要日期型轉數值差不多,也是通過date命令來實現來的
date -d "2018-07-24 12:00:25" +%Y-%m-%d
將-d參數后的時間,按照“%Y-%m-%d”格式輸入字符串。
[root@lbcsvr ~]# date -d '2018-07-24' +%Y-%m-%d 2018-07-24
-
數值轉日期
日期型的轉換,都可以通過date命令來完成。
date -d @1538617600 +%Y-%m-%d
通過-d將自UTC 時間 (1970-01-01 00:00:00) 以來所經過的1538617600 秒后的時間以格式字符輸出。
[root@lbcsvr ~]# date -d @1538617600 +%Y-%m-%d 2018-10-04