for 循环中 对空格自动换行的问题
例子: files=`ls /tmp` 如果tmp下有文件名存在空格,在 for file in $files do echo $file done 中存在空格的文件将变成多个文件名,此时将 for 循环改为 while循环即可 while read line do echo “${line}” ; done < <EOF $files EOF
例子: files=`ls /tmp` 如果tmp下有文件名存在空格,在 for file in $files do echo $file done 中存在空格的文件将变成多个文件名,此时将 for 循环改为 while循环即可 while read line do echo “${line}” ; done < <EOF $files EOF
通常的for…in…循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表,字符串,文件。它可以是list1 = [1, 2, 3],也可以是list1 = [x*x for x in range(3)]。 它的缺陷是所有数据都在内存中,如果有海量数据的话将会非常耗内存。 生成器是可以迭代的,但只可以读取它一次。因为用的时候才生成。比如 mygenerator = (x*x for x in range(3)),注意这里用到了(),它就不是数组,而上面的例子是[]。 理解的生成器(generator)能够迭代的关键是它有一个next()方法,工作原理就是通过重复调用next()方法,直到捕获一个异常。可以用上面的mygenerator测试。 带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代,工作原理同上。 yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面的值。重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码开始执行。 简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后开始。 带有yield的函数不仅仅只用于for循环中,而且可用于某个函数的参数,只要这个函数的参数允许迭代参数。比如array.extend函数,它的原型是array.extend(iterable)。 send(msg)与next()的区别在于send可以传递参数给yield表达式,这时传递的参数会作为yield表达式的值,而yield的参数是返回给调用者的值。——换句话说,就是send可以强行修改上一个yield表达式值。比如函数中有一个yield赋值,a = yield 5,第一次迭代到这里会返回5,a还没有赋值。第二次迭代时,使用.send(10),那么,就是强行修改yield 5表达式的值为10,本来是5的,那么a=10 send(msg)与next()都有返回值,它们的返回值是当前迭代遇到yield时,yield后面表达式的值,其实就是当前迭代中yield后面的参数。 yield相关的文章参考 https://zhuanlan.zhihu.com/p/94126166
What image a person will leave in history is sometimes a very accidental thing. Even if Jia Gongyan pats his head, he probably won’t know that in a thousand years, he will be regarded as the earliest discoverer of fingerprint
How long have you not had a good night’s sleep? People spend one-third of their time in bed, but more and more people work under pressure during the day and are not awake, and cannot sleep well or fall asleep
podman fail to run container with volume setting From podman logs <container> command, get following error message: chown: changing ownership of ‘XXX‘: Permission denied Here’s there solutions: add “–privileged=true” options when use podman run disable selinux add rule to selinux,
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
Recent Comments