gpt4 book ai didi

bash - "for loop"和 $() 组合限制

转载 作者:行者123 更新时间:2023-12-04 04:36:53 27 4
gpt4 key购买 nike

好的,我正在编写一种不同的脚本,但问题归结为这样的:假设以下“for循环”:

for i in $(ls -l); do echo $i; done

问题是“for 循环”用空格分隔值,所以每个“i”等于“ls -l”中用空格分隔的每个单词。因此输出是这样的:

total

24

drwxrwxr-x.

2

james

james

4096

Oct

26

16:56

bg

. . .



但我想贯穿每个刺激变量 “i”等于整行 'ls -a' 而不是每个单词。换句话说,“i”等于整行
"drwxrwxr-x.  2 james james 4096 Oct 26 16:56 bg" 

而不是通过每个词来刺激。我尝试了很多解决方法,但都没有奏效,让我有点害怕。

有没有办法告诉“for 循环”由 分隔新线而不是空间

附言上面的例子只是为了说明(你可能会说这有点毫无意义)但我的问题与此类似。

最佳答案

相反,你可以

ls -l | while IFS= read -r l ; do echo "This is it: $l" ; done

或做
IFS=\\n

在运行您的 for 之前,但由于可能的副作用,我会避免这样做。

关于bash - "for loop"和 $() 组合限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19619948/

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