2013-04-15 44 views
0

所以我想学习如何编写用于Linux操作系统的脚本,所以我编写了这个下载和安装脚本。虽然,我知道任何一款优秀的linux编码器都会认为这是绝对的滑动工作,但它迄今为止的工作状态已达到标准,所以目前我只有一个错误。从字符串破折号执行命令Linux

CODE:

#!/bin/sh 
################################### 
#Lystics Core Linux Code v1  # 
#         # 
# Starting Date 4/14    # 
#         # 
# Ending Date ~     # 
#         # 
################################### 


clear 

#Define Veriables 
dir='./LysticsCode/' 
url='http://lysticscode.host-elite.com/Linux/Bash%20Scripts/LCode.sh' 
file=$(basename "$url") 

echo LysticsCode for Linux v1 Installer 
echo 
read -r -p "Are you sure you wish to install? [Y/n] " a 
if [ "$a" = 'n' -o "$a" = 'N' ]; then 


#Not going to install 
echo 'Exiting The Installation. Thank You! =D' 
exit 1; 
else 
#Set up screen 
clear 
echo LysticsCode for Linux v1 
echo First Installation 
echo '' 
#Installing 
echo Downloading Packages... 
curl -o "$dir$file" "$url" 
echo '' 
echo '' 
echo 'Download Complete!' 
eval "alias lcode=/root/LysticsCode/Main.sh" 
exit 1; 
fi 


#End Script 
$SHELL 

我所试图做的就是添加一个命令别名,将允许安装的文件被访问要容易得多。我试过使用eval“别名lcode = DIR”,它没有工作。同$(别名lcode = dir)

任何人都可以帮忙吗?

回答

0

别名不会继承到子进程。你不应该在脚本的末尾调用一个子shell,而是说你的脚本保存到一个名为myenv.sh文件,执行脚本你在当前的shell为:

. myenv.sh 
+0

但是,如果用户在文件不在的目录中,那么在命令中将无法工作。但是,如果我要为位于/root/LysticsCode/Main.sh的文件创建一个别名,那么用户将处于什么目录并不重要 – user2281503