我想使用 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 时,不会创建链接。虽然变量显然写的是正确的。应该是语法的问题。我该如何解决这个问题?
问题是因为读取过程中添加了一些符号造成的:
bst."B01'$'\r''.cfg
通过删除它们
bandB=${bandB//$'\r'/}
可以创建链接。