示例:

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/

10-11 22:04