2017-08-09 6 views
-1

別の変数として$ 1変数を設定するにはどうすればよいですか?私のような何かを実行したい:

$ ./script london 
Some output with John in text 

を、スクリプトは次のようにする必要があります:

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

答えて

2

私は、変数名を検索盲目的にはお勧めしません。ユーザーは、期待する3つの変数だけでなく、任意の変数を渡すことができます。

代わりに、連想配列を使用してください。

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
#!/bin/bash 
london="Jhon" 
ukraina="Yury" 
romania="Ion" 

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

あなたはこの変数の使用など$ 1宣言したい場合:たとえば

VARIABLE="$1" 

#!/bin/bash 
VARIABLE="$1" 
echo $VARIABLE 
関連する問題