相关疑难解决方法(0)

为什么使用 shell 循环处理文本被认为是不好的做法?

在 POSIX shell 中使用while 循环来处理文本通常被认为是不好的做法吗?

正如Stéphane Chazelas 所指出的,不使用 shell 循环的一些原因是概念可靠性易读性性能安全性

这个答案解释了可靠性易读性方面:

while IFS= read -r line <&3; do
  printf '%s\n' "$line"
done 3< "$InputFile"
Run Code Online (Sandbox Code Playgroud)

为了性能,从文件或管道读取时,while循环和读取非常慢,因为内置read shell一次读取一个字符。

怎么样的概念安全性方面?

shell text-processing

241
推荐指数
4
解决办法
5万
查看次数

在bash中,是否可以在大括号扩展中使用整数变量

我有以下 bash 脚本:

#!/bin/bash

upperlim=10

for i in {0..10}
do
echo $i
done

for i in {0..$upperlim}
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)

第一for回路(没有变量upperlim中的循环控制)工作正常,但所述第二for环路(可变upperlim的循环控制)没有。有什么办法可以修改第二个for循环以使其正常工作吗?谢谢你的时间。

shell bash shell-script for

78
推荐指数
3
解决办法
8万
查看次数

为什么我应该避免 shell 中的循环?

以下链接建议不要在 shell 中使用循环。

for循环范围内的bash变量

为什么是这样?这是我在遇到该答案时碰巧正在查看的示例循环:

find /etc/postinstall -name '*.sh' | while read script
do
  echo Running $script ...
  $script
  mv $script $script.done
done
Run Code Online (Sandbox Code Playgroud)

shell bash

3
推荐指数
1
解决办法
1575
查看次数

标签 统计

shell ×3

bash ×2

for ×1

shell-script ×1

text-processing ×1