2016-11-20 54 views
2

我有一個劇本叫variable.sh幷包含設置許多變量按如下:自動改變的變量在bash腳本

var1=variable1 
var2=variable2 
var3=variable3 
var4=variable4 
var5=variable5 

我需要運行一個命令,將改變變量變量的位置.SH。當我運行command.It將隨着以下變量將繼續改變:

第一個變化:

var1=variable2 
var2=variable3 
var3=variable4 
var4=variable5 
var5=variable1 

第二個變化:

var1=variable3 
var2=variable4 
var3=variable5 
var4=variable1 
var5=variable2 

是否有任何可能的命令做以上變化?我在Ubuntu中使用bash腳本。謝謝

回答

1

例如,這可以做到使用bash數組:

#!/usr/bin/env bash 

inputfile=/path/to/input 

vars=() 
values=() 
while read line; do 
    vars+=(${line%%=*}) 
    values+=(${line#*=}) 
done < "$inputfile" 

values+=(${values[0]}) 
for ((i = 0; i < ${#vars[@]}; i++)); do 
    echo ${vars[i]}=${values[i + 1]} 
done > "$inputfile"