【发布时间】:2022-01-11 22:41:01
【问题描述】:
我想将整数作为命令行参数输入到 shell 脚本中,并使用这些整数进行基本的字符串操作。
例如:
# POSIX Shell
user@host $ ./script 3 4 1 5
^
| * * *
| * * * *
| *
| * * * * *
------------
user@host $
还有一些伪代码来演示,我想如何实现这一点:
# Pseudocode
#!/bin/sh
for arg in $#; do
echo $((arg * '* '))
done
# Or something similar with a loop ;-)
如果有人有一个想法可以在像 /bin/sh 这样的纯 POSIX Shell 中引导我走向正确的方向,那就太好了!
【问题讨论】:
-
只有 Python 允许你“乘”字符串。在其他语言中,您将使用循环。
-
@thatotherguy 感谢您的回答!想法,如何做到这一点?
-
查看How do I write a 'for' loop in Bash? 了解如何对某个整数 N 重复操作 N 次
-
for arg in $#; do将只迭代一次,arg设置为传递给脚本的参数数量。您的意思当然是for arg in "$@"(可以(并且IMO应该)缩短为for arg; do ... -
或
yes '* ' | sed ${arg}q | tr -d \\n ; echo,但请确保您首先验证输入是否为整数。