ln 使用 IFS=读取路径名变量时不会创建链接

问题描述 投票:0回答:1

我想使用 Linux bash 脚本自动应用指向特定文件的链接。目标路径名的一部分应取自 txt 文件。这是我的程序:

bandA="B01"
while IFS= read -r bandB || [ -n "$p" ]
do
  printf '%s\n' $bandA                #from header
  printf '%s\n' $bandB                #from list.txt
  ln -sfn /bst.$bandA.cfg /bst.cfg
done < LIST.txt

LIST.txt 的第一行也是“B01”。 (不带引号)

命令行总是返回

B01 B01

问题出现在 ln 命令处。当我应用 $bandA 时,链接已成功创建。当我从 IFS=read 应用 $bandB 时,不会创建链接。虽然变量显然写的是正确的。应该是语法的问题。我该如何解决这个问题?

symlink ifs ln
1个回答
1
投票

问题是因为读取过程中添加了一些符号造成的:

bst."B01'$'\r''.cfg

通过删除它们

bandB=${bandB//$'\r'/}

可以创建链接。

© www.soinside.com 2019 - 2024. All rights reserved.