您好我正在尝试在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
目前它将在新行上打印每个“ - ”,如何在同一行上打印它们?谢谢
答案 0 :(得分:3)
请尝试使用printf
:
printf "-"
要在运行脚本期间传递参数,请使用:
$./shell-script-name.sh argument1 argument2 argument3
然后argument1
,argument2
和argument3
分别在您的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个连字符:
----------