回答
你有
temp =`date +%Y%m%d`
^
因此,您需要刪除temp
和date
之間的空格:
#!/bin/sh
temp=$(date +%Y%m%d) # better than `exp`, thanks @OliverDulac (see comments)
echo "$temp"
有了它,它對我有用。
確保文件具有執行權限:
chmod +x your_file
或只是
/bin/sh /your/script/path/your_file
而且,作爲一個好習慣(並且允許輕鬆嵌套),請改用'$(...)':'temp = $(date +%Y%m%d)'。在'$(...)'內部,您可以在該級別使用引號和變量以及特殊字符*,也就是說,您可以在單獨的行中寫入內部。例如:'foo = $(echo「$ var $(echo $」var「)」)' –
好點,@OlivierDulac!記住這一點總是很好,所以我用這個更新我的答案。謝謝 – fedorqui
+1對於引用^^ –
temp
變量需要不帶空格被分配執行它。
您的腳本的確有語法錯誤,解決它在第二行刪除temp
後的空間,但這個錯誤不會拋出 execute permission denied
但line 2: temp: command not found
。
你的腳本沒有執行權限,解決它調用:
chmod +x FILE.sh
其中FILE
是這個腳本的名稱。
在sh腳本(不只是慶典)爲變量賦值時等號是不能接受的,因爲你可以做這樣的事情:
VARIABLE=something ./runcommand
已經變量遠銷./runcommand子,但通常不會導出到所有子進程。
如果允許空間,將無法區分作業結束與命令行開始。
- 1. 將unix時間戳轉換爲不帶系統庫的日期
- 2. adabas系統日期
- 3. 根據系統日期爲月份和期間分配變量
- 4. 作爲字符串的系統日期
- 5. 爲硒測試設置系統日期
- 6. SQL當前系統日期
- 7. 更改系統日期
- 8. 獲取系統日期ddmmyyyy
- 9. 檢索系統日期
- 10. 顯示系統日期
- 11. 系統日期格式
- 12. 預約系統日期
- 13. 將系統日期轉換爲格式化日期
- 14. java.util.Date是否表示日期是否爲系統日期?
- 15. 轉換系統日期爲本地日期Rails中
- 16. 作爲字符而不是日期的系統日期
- 17. 在Unix中將Unix時間轉換爲可讀日期
- 18. Unix系統(「unzip archive.zip」)
- 19. execve的UNIX系統
- 20. Unix系統編程
- 21. 是否可以更改系統日期爲PHP(只)
- 22. 比較系統日和日期時間
- 23. 檢查到期日期可以通過更改系統日期來繞過
- 24. 當系統日期改變時,TimerTask獲取系統日期和時間停止運行
- 25. UNIX時間戳爲datetime在android系統
- 26. 爲遠程unix系統設置顯示環境變量
- 27. 無法日期變量比較UNIX
- 28. 關於UNIX變日期格式
- 29. 更改可可單元測試的系統日期
- 30. 重置primefaces日曆日期到系統日期
可能重複[Bash腳本變量聲明 - 命令未找到](http://stackoverflow.com/questions/2268104/bash-script-variable-declaration-command-not-found) – tripleee