以bash分配位置变量

问题描述 投票:0回答:1

如何在if条件中分配位置变量?

例如,我的脚本名称是test.sh。如果将第一个变量设置为“ T”,则希望看到打印的变量$ 2和$ 3。主要原因是稍后在其他情况下使用$ 2和$ 3变量。我想将变量$ 2和$ 3分别设置为10和15。

 #!/bin/bash

echo "The first variable : $1"
echo "The second variable  : $2"
echo "The third variable : $3"
if [ $1 == "T" ]
        then
         $2 = 10
         $5 = 15
fi
echo "$2"
echo "$3"

错误显示:“找不到命令”。我想我正在语法错误?

bash
1个回答
0
投票

您无法分配给编号变量。但是,您可以使用set,但是可能会丢失其他参数:

#!/bin/bash

echo "The first variable : $1"
echo "The second variable  : $2"
echo "The third variable : $3"
if [ "$1" == "T" ]
        then
        set -- T 10 15
fi
echo "$2"
echo "$3"

0
投票

是的,您有语法错误。分配变量的方法是NAME=VALUE。注意没有美元符号,等号周围没有空格。但是,2=VALUE也无效。

您无意分配编号的参数。您可以使用set --来完成此操作,但是更好的方法是为它们指定变量名称,例如

#!/bin/bash

first="$1"
second="$2"
third="$3"

echo "The first variable: $first"
echo "The second variable: $second"
echo "The third variable: $third"
if [ "$first" == "T" ]; then
   second=10
   third=15
fi
echo "$second"
echo "$third"
© www.soinside.com 2019 - 2024. All rights reserved.