0
這個.bashrc函數在命令行上工作, 它是一個很棒的bash單行文件。replaceInAll腳本工作在cli上但不能作爲.bashrc函數
但將其移入bash配置文件,它停止工作?
replaceInAll(){ find . -name "$1" -print | xargs sed -i 's/$2/$3/g' }
什麼我沒有這個讓賴特?
這個.bashrc函數在命令行上工作, 它是一個很棒的bash單行文件。replaceInAll腳本工作在cli上但不能作爲.bashrc函數
但將其移入bash配置文件,它停止工作?
replaceInAll(){ find . -name "$1" -print | xargs sed -i 's/$2/$3/g' }
什麼我沒有這個讓賴特?
這工作
replaceInAll(){ find . -name "$1" -print | xargs sed -i s/"$2"/"$3"/g }
確定'.bash_profile'其來源爲您的殼呢?它只能用於登錄shell,而不是所有的交互式shell。 – chepner 2014-08-29 13:04:53
我在Linux的盒子裏,所以它的.bashrc,我有一個功能工作正常,例如grepall(){ 查找。 -name「$ 1」| xargs -I%sh -c'echo%; grep「$ 2」%; echo「」'_「$ @」; } – dmc 2014-08-29 13:11:05
如果您的終端仿真器啓動了非登錄交互式shell,那麼您必須在'.bashrc'中定義函數。函數不會被導出,所以你的shell不會從你的初始登錄shell中繼承這個函數。 (然而,您可以嘗試使用'export -f replaceInAll'從'.bash_profile'中導出函數,然後重新登錄以查看該函數是否傳播到其他shell。只需在正確的文件中定義函數就簡單多了,儘管如此。) – chepner 2014-08-29 13:12:53