kernel=`uname -s` # Current Kernel name
user=`whoami` # Current Unix username
time=`date +%H:%M` # Output current time
current_dir=$(pwd) # Shell's current location
script_dir=$(dirname $0) # This script's current location
# This if statement is to know the correct location of the script, if the
# shell's location is the same as the script's location
if [ $script_dir = '.' ]; then
script_dir="$current_dir"
fi
if [ $kernel == 'Linux' ]; then
# Making symlinks to Vim files, add yours as you need
echo 'Making symlinks to Vim files'
ln -s -v $script_dir/vim /home/$user/.vim
ln -s -v $script_dir/vim/vimrc /home/$user/.vimrc
ln -s -v $script_dir/vim/gvimrc /home/$user/.gvimrc
echo "Done at [$time]...\n"
# Making symlinks to Zsh files, add yours as you need
echo 'Making symlinks to Zsh files'
ln -s -v $script_dir/zsh /home/$user/.zsh
ln -s -v $script_dir/zsh/zshrc /home/$user/.zshrc
echo "Done at [$time]...\n"
# Making symlinks to Git files, add yours as you need
echo 'Making symlinks to Git files'
ln -s -v $script_dir/git/gitconfig /home/$user/.gitconfig
ln -s -v $script_dir/git/gitmessage.txt /home/$user/.gitmessage.txt
echo "Done at [$time]...\n"
fi
这在Linux中没有问题吗?我正在尝试创建一个make_symlinks.sh
文件,所以我要检查Darwin(已经有效),但由于我没有要测试的Linux机器,我不知道这个脚本是否可行在Linux中。
那么,这有用吗?谢谢你的帮助!
答案 0 :(得分:1)
脚本的修改版本提供:
kernel=Linux
user=david
time=23:04
current_dir=/home/david/SO/Test
script_dir=/home/david/SO/Test
修改过的脚本:
kernel=`uname -s` # Current Kernel name
user=`whoami` # Current Unix username
time=`date +%H:%M` # Output current time
current_dir=$(pwd) # Shell's current location
script_dir=$(dirname $0) # This script's current location
# This if statement is to know the correct location of the script, if the
# shell's location is the same as the script's location
if [ $script_dir = '.' ]; then
script_dir="$current_dir"
fi
if [ $kernel == 'Linux' ]; then
echo "kernel=$kernel"
echo "user=$user"
echo "time=$time"
echo "current_dir=$current_dir"
echo "script_dir=$script_dir"
fi
您的ln
命令可行:
NAME
ln - make links between files
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
#[...]
-s, --symbolic
make symbolic links instead of hard links
-v, --verbose
print name of each linked file