2014-11-20 44 views
0

我为我的ubuntu机器创建了一个install.sh文件。这个文件的目的是在ubuntu机器上启动我的dotfiles的配置。但我也是一台MacOsX机器。兼容Ubuntu和MacOsX的bash脚本

#!/bin/bash 
clear 
SCRIPT=$(readlink -f $0) 
SCRIPTPATH=`dirname $SCRIPT` 
cd $SCRIPTPATH && git submodule update -i 
rm -rf ~/.vim 
ln -s $SCRIPTPATH/.vim ~/.vim 
rm ~/.vimrc 
ln -s $SCRIPTPATH/.vimrc ~/.vimrc 
rm ~/.bashrc 
ln -s $SCRIPTPATH/.bashrc ~/.bashrc 

这是我所得到的,如果我在MacOSX上运行同一个脚本:

readlink: illegal option -- f 
usage: readlink [-n] [file ...] 
usage: dirname path 
fatal: Not a git repository (or any of the parent directories): .git 

我如何转换我的 “install.sh”,因此它可以运行在MacOsX和Ubuntu上都有?

回答

0

只需使用第一个参数为脚本名称:

SCRIPT="$0" 

$0始终可用,始终包含完整的脚本名称。如果要从链接执行脚本以便返回脚本的实际目标名称,则只需要readlink