2015-07-13 2 views
1

Я пытаюсь написать сценарий bash, который может вытащить переменные из его выполнения.pull variable из команды (bash)

Я действительно не могу объяснить это очень хорошо, но я хочу получить переменную из того же сценария bash.

Скажем, в этом случае скрипт, который я написал, это CMD.sh.

sh ./CMD.sh foobar 
     var = foobar 

, и если это возможно, как это сделать в скрипте?

sh ./CMD.sh foo bar fubar 
     var1 = foo 
     var2 = bar 
     var3 = fubar 

, как я могу создать скрипт bash.sh скрипт, который может тянуть в переменном из выше и использовать его

+4

Ваш вопрос не вполне понятно. Попробуйте написать фактическую командную строку и укажите нам, что не так с вашим решением. – Rubens

+0

Не можете ли вы сначала определить переменные, а затем использовать их в вызове 'CMD.sh'? –

ответ

1

Вероятно, вы говорите о positional parameters.
cmd.sh:

#!/bin/bash 
var1="$1" 
var2="$2" 
var3="$3" 
echo "$var1 $var2 $var3" 

$1 является первым позиционным параметром т.е. аргумент, передаваемый сценарию.
$2 - второй позиционный параметр, аргумент i.e передается скрипту.
... и так далее ...

Теперь, если вы запустите cmd.sh так:

./cmd.sh foo bar fubar 

выход будет:

foo bar fubar 
3

Вы можете получить доступ к аргументам вы перешли в Баше скрипт, как $1, $2, $3,.... т.е .: если вы пишете сценарий, скажем my-script.sh и внутри вы пишете

echo $1 
echo $2 
echo $3 

И выполнить этот сценарий как ./my-script.sh firstarg secondarg thirdarg, то он будет печатать:

firstarg 
secondarg 
thirdarg