gpt4 book ai didi

linux - 我想将 Bash 脚本的所有命令行参数存储到单个变量中

转载 作者:IT王子 更新时间:2023-10-29 00:25:52 24 4
gpt4 key购买 nike

假设我有一个名为 foo.sh 的 Bash 脚本。

我想这样调用它:

foo.sh Here is a bunch of stuff on the command-line

我希望它将所有文本存储到一个变量中并打印出来。

所以我的输出是:

Here is a bunch of stuff on the command-line

我该怎么做?

最佳答案

如果您想避免涉及 $IFS,请使用 $@(或者不要将 $* 括在引号中)

$ cat atsplat
IFS="_"
echo " at: $@"
echo " splat: $*"
echo "noquote: "$*

$ ./atsplat this is a test
at: this is a test
splat: this_is_a_test
noquote: this is a test

IFS 行为也遵循变量赋值。

$ cat atsplat2
IFS="_"
atvar=$@
splatvar=$*
echo " at: $atvar"
echo " splat: $splatvar"
echo "noquote: "$splatvar

$ ./atsplat2 this is a test
at: this is a test
splat: this_is_a_test
noquote: this is a test

请注意,如果在 $splatvar 赋值之后对 $IFS 赋值,则所有输出都将相同($IFS 在“atsplat2”示例中无效)。

关于linux - 我想将 Bash 脚本的所有命令行参数存储到单个变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/841670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com