变量$ 1作为变量

时间:2017-08-09 14:27:45

标签: bash

如何将$ 1变量设置为另一个变量?我想运行类似的东西:

$ ./script london
Some output with John in text

脚本应该像:

#!/bin/bash
london="John"
ukraina="Yury"
romania="Ion"
cat /path/to/file | grep $1

3 个答案:

答案 0 :(得分:2)

我不建议盲目查找变量名称。用户可以传入任何变量,而不仅仅是您期望的变量之一。

相反,使用关联数组。

declare -A names=([london]=John [ukraina]=Yury [romania]=Ion)
grep "${names[$1]}" /path/to/file

或者,如果您的bash版本不支持关联数组,请使用case查找。

case $1 in
    london)  name=John;;
    ukraina) name=Yury;;
    romania) name=Ion;;
esac

grep "$name" /path/to/file

答案 1 :(得分:1)

#!/bin/bash
london="Jhon"
ukraina="Yury"
romania="Ion"

cat /path/to/file | grep ${!1}

答案 2 :(得分:0)

如果你想将$ 1声明为变量,请使用:

VARIABLE="$1"

例如:

#!/bin/bash
VARIABLE="$1"
echo $VARIABLE