我有一个函数需要更改 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/