Bash 读取与脚本执行相同行中的用户输入
我有一个名为fib.sh的BASH脚本。脚本读取用户输入(数字)并执行计算。我想能打字Bash 读取与脚本执行相同行中的用户输入,bash,shell,Bash,Shell,我有一个名为fib.sh的BASH脚本。脚本读取用户输入(数字)并执行计算。我想能打字 $ ./fib.sh 8 其中8是输入 目前,我必须等待下一行输入 $ ./fib.sh $ 8 剧本 #!/bin/bash read n a=0 b=1 count=1 fib=$a while [ $count -lt $n ]; do fib=$[$a+$b] a=$b b=$fib count=$[$count+1] done echo "fib $n
$ ./fib.sh 8
其中8是输入
目前,我必须等待下一行输入
$ ./fib.sh
$ 8
剧本
#!/bin/bash
read n
a=0
b=1
count=1
fib=$a
while [ $count -lt $n ];
do
fib=$[$a+$b]
a=$b
b=$fib
count=$[$count+1]
done
echo "fib $n = $fib"
exit 0
因此,您希望将参数传递给脚本,而不是读取它。在这种情况下,使用
$1
,如下所示:
#!/bin/bash
n=$1 <---- this will take from the call of the script
echo "I have been given the parameter $n"
a=0
b=1
count=1
fib=$a
while [ $count -lt $n ];
do
fib=$[$a+$b]
a=$b
b=$fib
count=$[$count+1]
done
echo "fib $n = $fib"
exit 0
#/bin/bash
n=$1$[…]
已弃用;改用$(…)
(POSIX标准的一部分)。示例fib=$($a+b))
@chepner您甚至不需要$
内部:$($a+b))
.True;我只是想先把代码从不推荐的语法中去掉;充分利用它的功能可以在以后实现。