bash - 可以在 Bash 函数中本地更改 IFS 吗?

标签 bash shell local ifs

我有一个函数需要更改 IFS 的逻辑:

my_func() {
  oldIFS=$IFS; IFS=.; var="$1"; arr=($var); IFS=$oldIFS
  # more logic here
}

我能否在函数内将 IFS 声明为 local IFS,这样我就不必担心备份其当前值并在以后恢复?

最佳答案

它似乎如您所愿地工作。

#!/bin/bash
changeIFSlocal() {
    local IFS=.
    echo "During local: |$IFS|"
}
changeIFSglobal() {
    IFS=.
    echo "During global: |$IFS|"
}
echo "Before: |$IFS|"
changeIFSlocal
echo "After local: |$IFS|"
changeIFSglobal
echo "After global: |$IFS|"

这打印:

Before: |
|
During local: |.|
After local: |
|
During global: |.|
After global: |.|

关于bash - 可以在 Bash 函数中本地更改 IFS 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50728845/

相关文章:

browser - 如何构建可发布的 "local"品牌迷你浏览器

linux - 如何列出存储库中的文件/目录?

linux - 使用 grep 从另一个 linux 脚本检测 linux bash 脚本中的注释行

bash - 打印与用户名关联的名称和主目录路径

linux - ssh 终端不自动完成或存储命令历史记录

search - jqGrid - 使用数据类型 :local Or loadonce: true 时如何搜索

bash - 如何在 bash 中提取文件夹名称作为变量

linux - Sed - 修改第一列中的单个字符而不触及其他字符

python - 如何启动 Python ipython shell,自动在其中运行一些命令,并保持打开状态?

javascript - 跨多个设备保存和加载复选框状态