我有一些shell腳本,我在我的Linux/AIX機器上運行bash
配置文件。現在我的bash
個人資料將被刪除,我將有Korn shell (ksh)
或C shell (csh)
。如何驗證我的腳本在Korn shell (ksh)
或C shell (csh)
中運行正常,即使在刪除bash
外殼後也是如此。另外,在bash
和other (ksh, csh)
之間的常用命令中是否有任何不同。是否有命令檢查在運行shell腳本時使用哪個shell?如何檢查bash和其他shell配置文件中的差異
0
A
回答
1
首先,這不是問題,您的帳戶的默認外殼是無關緊要的。只要bash安裝在機器上,就可以用它來運行你的代碼。無論是添加shebang line作爲腳本的第一行:
#!/usr/bin/env bash
或者明確地使用bash運行腳本:
$ /bin/bash /path/to/script.sh
至於差異,是有很多種。爲bash編寫的腳本不會在csh中運行,它們的語法完全不同。它可能在ksh
上運行,但這取決於您的腳本。並非兩個外殼的所有特徵都是相同的。例如:
$ cat test.sh
var="foo";
echo $var;
$ bash ./test.sh
foo
$ ksh ./test.sh
foo
$ csh ./test.sh
var=foo: Command not found.
var: Undefined variable.
正如你可以在上面看到,var=foo
運行正確ksh
(這是Bourne shell的家庭的一部分),但是失敗了csh
。基本上,將每個shell都視爲自己的編程語言。你不會指望python解釋器能夠運行perl程序,你爲什麼期望一個shell能夠運行爲另一個shell編寫的腳本?
0
OP寫入bash將被刪除。 如果你真的無法安裝bash。先從#/斌/ KSH每個腳本檢查語法問題:
ksh -n migrated_script
當你使用bash/Linux特有的東西,你需要解決這些問題: 像find命令AIX將「失蹤」的標誌(最後一小時改變了......)而ksh本身也不同。 不要嘗試csh,這是完全不同的。
相關問題
- 1. 大文件和其他小文件之間的高效差異
- 2. 如何檢查其他BLE設備支持的藍牙配置文件?
- 3. 如何配置make文件以查找其他目錄中的頭文件?
- 4. 如何顯示日文,中文和其他Unicode文本的差異
- 5. 其他配置文件中的端點
- 6. XSL導入:如何克服(docbook或其他)樣式文件位置的差異
- 7. Linux的差異只輸出文件名和其他什麼
- 8. Python和其他文件哈希之間的MD5哈希差異
- 9. 如何從shell腳本創建和訪問shell配置文件?
- 10. 如何檢查兩個「web.config」文件之間的差異
- 11. 如何在其他進程中檢查打開的文件?
- 12. 差異WIN32和其他C字符串
- 13. 如何使用bash shell檢查if語句中的特定文件類型
- 14. 如何導入配置TS文件在其他ionic2 TS文件
- 15. 如何將connectionString從一個配置文件追加到其他配置文件
- 16. 如何查看文件差異?
- 17. pinax.apps.accounts,idios配置文件和django.auth.User之間的差異
- 18. 如何檢查一些記錄的總和是否等於t-sql中兩個其他記錄的差異?
- 19. 檢查差異拉
- 20. applicationContext.xml和其他配置文件 - 他們應該去哪裏?
- 21. 如何在Python中訪問unix shell的其他文件流?
- 22. 如何查找文件並在其中包含其他文件?
- 23. 應用差異文件,其中包含來自多個文件的差異
- 24. 如何檢查EPS文件的顏色配置文件?
- 25. 差異在bash
- 26. 如果其他在shell命令的bash腳本中
- 27. 檢測木偶配置和實際的差異
- 28. 檢查bash腳本是從shell還是其他腳本/應用程序調用
- 29. 差異文件查看器?
從計算機中刪除'bash',還是隻是將登錄shell更改爲其他shell? – chepner 2014-10-03 19:49:45
'bash'即將從機器上移除 – user3772505 2014-10-05 07:08:35