如何在shell脚本中使用while循环在同一行上打印

时间:2017-10-04 00:54:02

标签: bash shell printing

您好我正在尝试在bash中创建一个shell脚本,它将打印一个由用户给出的高度和宽度的框。到目前为止,我的代码看起来像这样

#!/bin/bash 
read height
read width
if [ $height -le 2 ];then
echo "error"
fi
if [ $width -le 2 ];then
echo "error"
fi
#this is where i need help
if [ $height -gt 1];then
   if [ $width -gt 1];then
      echo "+"
      counter=$width
      until [ $counter == 0 ]
   do 
      echo "-"
      let counter-=1
   done
fi
fi

目前它将在新行上打印每个“ - ”,如何在同一行上打印它们?谢谢

2 个答案:

答案 0 :(得分:3)

请尝试使用printf

printf "-"

要在运行脚本期间传递参数,请使用:

$./shell-script-name.sh argument1 argument2 argument3 

然后argument1argument2argument3分别在您的shell脚本中变为$1$2$3

在你的情况下:

#!/bin/bash 
height=$1
width=$2
# ... The rest of the file ...

答案 1 :(得分:0)

printf更少的开销是:echo -n "-"

示例:

for f in {1..10} ; do echo -n - ; done ; echo

输出为10个连字符:

----------