使用字符串添加数字变量

时间:2014-11-25 03:59:40

标签: linux bash variables string

我要求用户输入一个数字,如果该数字大于2,那么我想将字符串-n添加到该数字。这是我的代码:

read -p "Enter a number " result_sort
if [ $result_sort >2 ]; then

   result_sort = $result_sort + " -n"

fi

echo "$result_sort" 

我收到错误:command not found

4 个答案:

答案 0 :(得分:1)

试试这个

result_sort=`echo "${result_sort} -n"`

result_sort和" ="之间不应该有空格。标志。在您的情况下,由于空间,它将result_sort标识为命令并尝试解释它。

答案 1 :(得分:1)

您的代码应如下所示:

read -p "Enter a number " result_sort
if [ $result_sort -gt 2 ]; then

   result_sort=$(echo "$result_sort -n")

fi

echo "$result_sort" 

有两个错误:

  1. 您使用的test实用程序([)不接受<>更多更少。这些字符是shell中的重定向字符(请参阅I/O Redirection)。即使$result_sort小于2,您在if子句中的语句也始终为true。您正在将该命令[ $result_sort ]的结果写入名为2的文件。

    < / LI>
  2. 两个字符串的串联不能以你的方式完成。

答案 2 :(得分:1)

您可以在BASH中执行此操作:

read -p "Enter a number " result_sort

((result_sort>2)) && result_sort+=" -n"

答案 3 :(得分:1)

只需连接变量的字符串值即可完成结果:

read -p "Enter a number " result_sort

[ "$result_sort" > 2 ] && 
result_sort="${result_sort}-n"

echo "$result_sort" 

大括号保护变量可以防止歧义。同样使用anubhava给出的算术比较可以防止用户输入数字以外的东西。