我正在尝试编写一个 bash 脚本来读取文件作为输入并将该文件中的值/数据附加到变量中,并且变量的值应根据文件中的输入行在每次迭代中更新。
例如:输入文件如下所示:
100 Thomas Manager Sales $5,000
200 Jason Developer Technology $5,500
300 Sanjay Sysadmin Technology $7,000
400 Nisha Manager Marketing $9,500
500 Randy DBA Technology $6,000
通过我的 shell 脚本阅读此内容时,我将定义 5 个变量,让我们 a、b、c、d、e。
第一次迭代:
变量值应分配给输入文件的第一行。
a=100
b=Thomas
c=Manager
d=Sales
e=$5000
第二次迭代:
变量值应分配给输入文件的第二行。
a=200
b=Jason
c=Developer
d=Technology
e=$5500
等等...
请任何人就如何编写脚本以读取这种格式的值提供一些输入。
您可以使用带有循环
read
选项的内置命令-a
将文件的每一行作为数组读取。然后您可以将数组元素的值分配给您需要的变量(或者您可以直接在脚本中使用数组元素):另一种方法是将特定行的每一列的值直接分配给变量。以下示例使用 bash 函数,该函数将在调用时为变量提供新值。该函数有一个输入参数,用于确定要解析文件中的哪一行。
笔记:
的默认值为
$IFS
空格和制表符,适用于这种情况。有关更多详细信息,请阅读此百科全书式答案。两个示例中使用的
-r
选项传递给read
command 可防止反斜杠转义被解释。根据用法
sed
,在第二个例子中,阅读这个答案。有关更多示例,请参阅答案的预览版本。