示例:
bash script.sh "hello world"
(在脚本
echo "$1"
中)hello world
问题:
bash script.sh "good" "morning" "everybody"
我必须在我的脚本中写什么才能直接输出:
goodmorningeverybody
所以,一般来说,我希望
$1
、 $2
、 $3
,...(可以是 100,但我不知道)保存在一个变量中,例如 VAR1
。 最佳答案
您可以使用 $*
和 $@
引用所有位置参数。
来自 3.4.2 Special Parameters
因此,要将 good morning everybody
作为输出,您可以使用 echo "$*"
或 echo "$@"
。
通常 @
是两个变量中更有用的一个。
但是,如果您真的希望按照您指示的方式将世界全部融合在一起,那么您有几个选择。
其中最直接的是一个简单的循环:
for word; do
s+=$word
done
(没有
for
部分的 in <list>
对位置参数进行操作)。但是,您也可以通过控制
*
使用 IFS
执行此操作。所以你也可以做
s=$(IFS=; echo "$*")
。您想要/需要子 shell 以避免为当前 shell 设置 IFS
。关于bash - 脚本,将所有 $input 保存到 1 个变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27317284/