所以我今晚正在开展一个项目并假设我的理解很差,要求是创建一个脚本来取一个数字并在同一行用逗号计数到1。
这里的一些人向我介绍了seq命令,我正在路上。
原来需要从命令行参数中获取变量整数。
我现在拥有的:
#!/bin/bash
#countdown
read -p "Enter a Number great than 1: " counter
seq -s, $counter -1
需要在行之后进行参数,例如/ assign1p1 5然后输出5,4,3,2,1
我看过$ 1用作参数标记?这是如何工作的?
答案 0 :(得分:1)
对您的用例正确调用seq
是:
seq [OPTION] ......最后一次增加
要使用定义的分隔符将起始值减少到1,请尝试类似于此示例的内容:
$ set -- 5
$ seq -s, $1 -1 1
5,4,3,2,1
显然,脚本中不需要调用set
,但这是在命令行测试的好方法。
答案 1 :(得分:0)
传递给您脚本的命令行参数是$1
,$2
等。
#!/bin/bash
seq -s, $1 1
echo
如果您想要使其更加健壮,您可能需要验证用户是否传递了正确数量的参数,即变量$#
。
#!/bin/bash
if (( $# != 1 )); then
echo "Usage: $0 num" >&2
exit 1
fi
seq -s, $1 1
echo
答案 2 :(得分:0)
从命令行传递给脚本的参数包括:$ 0,$ 1,$ 2,$ 3。 。
$ 0是脚本本身的名称,$ 1是第一个参数,$ 2是第二个参数,$ 3是第三个参数,依此类推。 [2] $ 9后,参数必须括在括号中,例如$ {10},$ {11},$ {12}。
答案 3 :(得分:0)
如果出于某种原因您不想使用seq
a=$1
for (( b = a; b > 0; b-- ))
do
(( b == a )) || printf ,
printf $b
done