linux中利用shell脚本条件执行命令

在linux环境中,我们总会有一些命令需要经常用,例如经常跳转到某些目录下或者执行某些命令,输入一连串的命令是很烦的,此时我们可以预先写一些脚本然后根据我们的选择自动执行命令,那岂不是完美,本脚本就是为此而生的(以跳转不同的目录举例,当然也可以执行其他命令,这时候只需要类比写shell命令即可)
1、首先建一个shell脚本start.sh

#!/bin/bash
cd_dir_1="/export/songhongwei/code"
cd_dir_2="/export/songhongwei/data"
cd_dir_3="/export/songhongwei/soft"
echo ""
echo " 1: cd $cd_dir_1"
echo " 2: cd $cd_dir_2"
echo " 3: cd $cd_dir_3"
echo ""
read -p "Please input the choice:"  idx
#if [[ -z "$idx"]];then
#  echo "no choice,exit"
if [[ '1' = "$idx" ]];then
  eval "cd $cd_dir_1"
elif [[ '2' = "$idx" ]];then
  eval "cd $cd_dir_2"
elif [[ '3' = "$idx" ]];then
  eval "cd $cd_dir_3"
else
  echo "no choice,exit!"
fi
echo ""

2、然后把该脚本放在某个目录下,例如本人放在了/export/songhongwei/soft/sh
3、编辑~/.profile文件把sh目录添加到环境变量即可

PATH="$HOME/bin:$HOME/.local/bin:/export/songhongwei/soft/sh:$PATH"

4、在shell或linux终端中可以在任何目录下直接访问该命令

. start.sh 或 source start.sh

这里写图片描述

注:
(1)步骤4中,start.sh 前的 点 不能忘记,代表的是在当前bash环境下读取并执行FileName中的命令,否则会新开子进程执行FileName中的命令,此时cd无法再当前bash环境跳转。
source、sh、bash、./执行脚本的区别:http://blog.csdn.net/yun90/article/details/22667829
(2)添加sh目录到环境变量目的是一方面可以在任何目录下执行FileName中命令,另外可以在该sh目录下添加多个此类脚本。

猜你喜欢

转载自blog.csdn.net/otengyue/article/details/78623510