1. 程式人生 > >linux中利用shell指令碼條件執行linux命令

linux中利用shell指令碼條件執行linux命令

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目錄下新增多個此類指令碼。