不當工作,所以我發現了艱辛的道路是$(date +%H)
從凌晨1點返回基地8號上午9點。沒有什麼大不了的,我強迫它成爲一個基數爲10的數字:$((10#$(date +%H)))
......這是我的問題,寫的完全是拋出一個錯誤「-bash:9:command not found」,但如果我說echo $((10#$(date +%H)))
它會返回我正確的數字。任何線索爲什麼發生這種情況?你將如何去修復它?謝謝強制基地10在BASH
1
A
回答
3
如果您的date
變化是相當新的,有一個格式修飾符,可以爲每man
頁面更改或禁用填充:
默認情況下,date
墊用零數字字段。以下可選的標誌可以遵循%
:
-
(連字符)不要墊場。_
(下劃線)填充空格。0
(零)墊用零。
因此,第一件事我會嘗試將date -%-H
。這應該給你沒有任何填充的小時。
((hr = 1$(date +%H) - 100))
的1$(date +%H)
會給你一個:
上關的機會,你有一個古老的date
變種,你可以像得到一個實際數(取決於時間單或雙位數)值在100
和123
(含)之間,然後減去100
以給出數字小時。
例如,在上午04點23分,這將採取04
從date +%H
,把它轉換成104
然後減去100
獲得數4
。比9
更大
號碼也可以工作。時間16:42將採取16
從date +%H
,把它轉換成116
然後減去100
獲得數16
。
至於爲何您會得到一個錯誤,命令$((10#$(date +%H)))
將評估爲9
(假設時間爲09:xx
),然後就嘗試執行(其中,除非你在你有一個可執行9
某處路徑,會出錯)。
用echo
作爲前綴將導致命令echo 9
運行,其中是有效。
正如你所看到的,你不需要呼應它,你可以將其存儲在一個變量(如hr
以上),以備後用。
相關問題
- 1. 平等基地10和基地16
- 2. C:在基地打印的BigInteger 10
- 3. 在地圖上強制執行仿製
- 4. 如何強制bash解釋器?
- 5. bash:強制函數來調用別名
- 6. ValueError:無效文字int()與基地10
- 7. 最好的辦法基地10
- 8. 強制程序員調用其基地中的方法
- 9. VHDL輸入強制接地
- 10. Bash(價值太大了基地)
- 11. 爲什麼https在本地被強制?
- 12. 傳遞命令的部分在bash各地強勁
- 13. 將基數10轉換爲二進制
- 14. 在iOS 10中爲tableviewcell編寫registerWithClass或registerWithNib是否強制?
- 15. 批量強制窗口計算器關閉在Windows 10
- 16. RegularExpressionValidator.ValidationExpression強制長度在10個或12個符號
- 17. 強制Tkinter窗口留在全屏幕之上 - Windows 10
- 18. PEP8 - 基地2至10個基本轉換器
- 19. 在C++中執行shell命令時強制執行環境bash
- 20. 強制bash在vi模式下使用.vimrc
- 21. bash命令強制在USB驅動器上關閉文件
- 22. 在bash中,我怎麼能強制打印到終端
- 23. PS1 bash命令替換10
- 24. Jenkins在Windows 10上使用Bash
- 25. Windows 10在Bash中打開目錄Ubuntu
- 26. 強制IDE - 基本編譯問題
- 27. 強制重寫方法基類
- 28. 無效文字爲int()與基地10:''爲地圖(int,str(num))
- 29. Windows 10本地bash確實響應VSCode中的tasks.json
- 30. 基地名稱與空格在bash腳本中?
你能解釋腳本內實際發生了什麼嗎? – ConfuzzledandPuzzled
@ConfuzzledandPuzzled,希望這個更新可以讓你不再感到困惑和/或困惑:-) – paxdiablo
非常感謝,但是你知道爲什麼在我的問題中排除腳本中的echo會引發錯誤,而添加它會讓它正常運行嗎? – ConfuzzledandPuzzled