关于bash:使用shell脚本从文件中读取一行

reading a line from file using shell script

本问题已经有最佳答案,请猛点这里访问。

我在一个文件中存储了带端口的ip地址,我想用shell脚本读取它。 因此,文件serverIP具有数据192.168.1.17:3000。 我正在使用以下bash脚本来阅读它

1
2
3
IPAddressFile=/home/geo/serverIP
SERVER_IP_PORT=$(<$IPAddressFile)
echo $SERVER_IP_PORT

但是这个脚本echo是空字符串。 我在哪里弄错了?


如果您打算使用像$(<...)这样的仅使用bash的语法,那么您的脚本必须使用bash运行,而不是sh。

因此,运行bash yourscript或添加#!/bin/bash(或类似的)shebang,标记文件可执行文件,并将其作为命令调用,例如./yourscript

作为一种既有效又与POSIX sh兼容的替代方案:

1
IFS= read -r SERVER_IP_PORT <"$IPAddressFile"