2013-04-15 76 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