Shell脚本中的“ for i”和“ for in 1 2 3 4”之间有什么区别?

高拉夫

我必须将在shell脚本中解析的所有参数打印在另一行上。我写了一个脚本

for i in 1 2 3 4 5
do
   echo $i
done

但这印

1
2
3
4
5

即使我将参数解析为“ 10 20 30 40 50”

和互联网上的一个代码

for i
do
   echo $i
done

此代码正确打印参数。

有人可以向我解释为什么该代码有效但我的无效吗?

另外,如何使用一个变量($ i)的值作为变量名称来打印其他内容。喜欢

i=1
$($i)

应该打印$ 1的值。

iBug

for i 相当于 for i in "$@"

从Bash help for

for: for NAME [in WORDS ... ] ; do COMMANDS; done
   Execute commands for each member in a list.

   The 'for' loop executes a sequence of commands for each member in a
   list of items.  If 'in WORDS ...;' is not present, then 'in "$@"' is
   assumed.  For each element in WORDS, NAME is set to that element, and
   the COMMANDS are executed.

如果in WORDS ...;不存在,则in "$@"假定

如果要从变量获取变量,请使用间接扩展:

set -- arg1 arg2 arg3 foo
for i in 3 4 1 2
do
    echo "${!i}"
done
# Output: arg3 foo arg2 arg1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular Js、Angular 1、2、3 和 4 之间有什么区别?

[0,1,2,3,4]和[[0],[1],[2],[3],[4]]和有什么区别?

zsh中存在multios时,“&>单词”和“>单词2>&1”之间有什么区别?

陈述1和陈述2之间有什么区别

Apache Karaf 2和3之间有什么区别?

Shell脚本中%和%%之间有什么区别?

“(ex1)|(ex2)|(ex3)”和“ [(ex1)(ex2)(ex3)]”之间有什么区别

当通过 numpy 矩阵进行索引时, mat[:3,1:2] 和 mat[:3,1] 之间有什么区别?

bash 脚本中的 $1 和“$1”有什么区别?

什么是SetupAPI,SetupAPI1和SetupAPI2?它们之间有什么区别?

bash中的输出捕获函数中{} 1>&2和()1>&2有什么区别

jQuery版本1,版本2和版本3有什么区别?

std :: initializer_list <int>({1,2,3})和{1,2,3}有什么区别?

tf.constant([1,2,3])和tf.constant([[1,2,3]])有什么区别

Scheme中的'('()2 3)和'(()2 3)有什么区别?

Handlebars 1.x和2.x API之间有什么区别?

“命令>输出”和“命令2>&1>输出”之间有什么区别?

匹配分组 - 搜索中的 \1 和替换中的 \1 之间有什么区别

GPL v2和GPL v3许可之间有什么区别?

Redmine 3.x和2.x版本之间有什么区别

AWS S3 SDK ListObjectsV2 startafter和ContinuationToken之间有什么区别?

第2层和第3层广播之间有什么区别?

urllib,urllib2,urllib3和请求模块之间有什么区别?

请求,请求2和请求3之间有什么区别?

Amazon S3和Amazon EC2实例之间有什么区别?

R 公式中的 y ~ 1、y ~ 0 和 y ~ -1 之间有什么区别?

python中的list [1]和list [1:2]有什么区别?

在sql中d1和d2之间设置日期条件与提取日期和日期有什么区别

对于 R 中的 4x6 矩阵 m,m[1:4,] 和 m[,1:6] 之间有什么区别吗?