這與實際使用的shell版本有關。
可以用 ls -l /bin/*sh 打印出來,例如:
在這里,sh被重定向到dash,因此,如果執行./example.sh,則使用的是dash 。
避免報錯可有多種方法,例如執行: bash example.sh ;
或者將腳本第一行#!/bin/sh 改為:#!/bin/bash ,執行./example.sh也可以。
另一種解決辦法:
代碼對於標准bash而言沒有錯,因為Ubuntu/Debian為了加快開機速度,用dash代替了傳統的bash,是dash在搗鬼,解決方法就是取消dash:
sudo dpkg-reconfigure dash ,在選擇項中選No。
@https://blog.csdn.net/u014470581/article/details/51493150