这是下面的安装文件(sandhi install.sh)。目前安装后只能从终端运行。我想让它独立于终端。Making a Ubuntu executable说明如何创建可执行文件,但我应该将代码放在哪里。我认为它应该在安装文件中,因为我们希望图标在安装完成后出现在桌面上。
我以前没有编写shell脚本和bash的经验,所以如果我错过了任何重要信息,我很抱歉。请询问你是否需要其他文件。我的目标基本上是独立于终点站运行三地。
#!/bin/bash
echo "Installing the required dependencies"
sudo apt-get -y install git-core autoconf automake make libtool g++ python-dev swig \
pkg-config libboost1.48-all-dev libfftw3-dev libcppunit-dev libgsl0-dev \
libusb-dev sdcc libsdl1.2-dev python-wxgtk2.8 python-numpy \
python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev \
libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev \
python-serial python-matplotlib
echo "Sciscipy installation starting"
git clone https://github.com/manojgudi/sciscipy-1.0.0.git
cd sciscipy-1.0.0/
sudo ./install
echo "Starting Sandhi installation"
cd ../
git clone http://github.com/manojgudi/sandhi.git
cd sandhi/
git submodule init
git submodule update
git pull origin master
git submodule update
mkdir build
cd build/
cmake ../
make -j 2
sudo make install
sudo ldconfig
echo "Sandhi installation complete. Go to command line and type Sandhi to start Sandhi"
最佳答案
您的脚本已经具备了成为a*nixexecutable-ashebang line的所有正确成分,并且至少看起来像是解释器的有效代码(/bin/bash
)。您所需要做的就是为相关用户和/或组(或每个人)提供对文件的执行访问权。例如,如果您是文件的所有者:
sandhi@host$ ls -l sandhi.sh
-rw-r--r-- 1 purak users 3.5K Oct 11 16:55 sandhi.sh
sandhi@host$ chmod u+x sandhi.sh
现在您可以执行它:
sandhi@host$ ls -l sandhi.sh
-rwxr--r-- 1 purak users 3.5K Oct 11 16:55 sandhi.sh
sandhi@host$ ./sandhi.sh
剩下的问题不清楚你在问什么。对Making a Ubuntu executable的公认回答是,如果可执行文件
foo.bin
位于/usr/local/bin
中(自定义可执行文件的合理目标),则桌面条目中的行应为Exec=/usr/local/bin/foo.bin
。