2013-04-15 2 views
0

Так что я пытаюсь научиться писать сценарии для ОС Linux, поэтому я написал этот сценарий загрузки и установки. Хотя, я знаю, что любой хороший кодер для linux будет думать, что это абсолютная работа по скольжению, она работает до пар до сих пор, поэтому я просто имею одну ошибку на данный момент.Execute Command From String Dash Linux

КОД:

#!/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 «alias lcode = DIR», и он не сработал. То же самое с $ (alias lcode = dir)

Может ли кто-нибудь помочь?

ответ

0

псевдоним не наследует дочерний процесс. Вы не должны вызывать ребенок оболочки в конце сценария, а не, скажем, сохранить свой скрипт в файл с именем myenv.sh, выполнить вам скрипт в текущей оболочке, как:

. myenv.sh 
+0

Но если пользователь находится в директории, в которой файл не находится, то в команде не будет работать. Но если бы я должен был создать псевдоним для файла, расположенного в /root/LysticsCode/Main.sh, тогда неважно, в какой папке будет находиться пользователь – user2281503