ubuntu12.04中shell指令碼無法使用source的原因及解決方案

來源:互聯網
上載者:User

現象: shell指令碼中source aaa.sh時提示 source: not found


原因: ls -l `which sh` 提示/bin/sh -> dash

這說明是用dash來進行解析的。


改回方法: 

命令列執行:sudo dpkg-reconfigure dash

在介面中選擇no

再ls -l `which sh` 提示/bin/sh -> bash


修改成功,source可以用了~


說明:

Dash Shell 是一個Unix Shell,比Bash Shell 小的多,符合POSIX標準。Debian曾經採用/bin/bash的更改/bin/dash,目的使用更少的磁碟空間、提供較少的功能、擷取更快的速度。但是後來經過shell指令碼測試存在運行問題。因為原先在bash shell 下可以啟動並執行shell script (shell  指令碼),會出現一些意想不到的問題,不是100%的兼用。 Ubuntu繼承了Debian,所以從Ubuntu 6.10開始預設是Dash Shell。 解決辦法:重新設定shell 1. sudo dpkg-reconfigure dash 選擇NO,不使用Dash Shell。 2.採用連結指向 ln -s /bin/bash /bin/sh 檢查是否正確:ls -l /bin/sh

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.