我有一个包含 2 行的文件,我想将它们分别读入 2 个变量。我如何在 shellscript(bash) 中完成此操作?
最佳答案
您可以在 shell 中打开文件描述符来读取变量:
#!/bin/bash
# open file
exec 6<tst.txt
read foo <&6
read bar <&6
# close file again
exec 6<&-
echo $foo $bar
编辑:
快速解释一下,这是使用 IO 重定向。通常文件描述符的处理方式如下:
- 0 标准输入(输入)
- 1 个标准输出(输出)
- 2 标准错误(错误)
但是,没有什么可以阻止使用其他文件描述符(最多 9 个),所以我们打开文件描述符 6 中的“tst.txt”文件,并使用 IO redirection 从中读取。 .
所以,exec 6<tst.txt
打开文件描述符 6 并重定向 tst.txt
进入其中,而 exec 6<&-
再次关闭它。
关于shell - 将文件中的行读入 shell 脚本中的 2 个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352008/