如何解决如何将 cat $1 读入 bash 变量
也许我问这个问题是错误的,但我似乎无法在任何地方找到答案。我想要做的是从脚本调用 (./script.shtextile.txt) 传递的文本文件中读取行并将其读入变量。我的代码是:
{"time":1616687149,"states":[["4b1806","SWR141W ","Switzerland",1616687090,1616687145,8.5609,47.4424,null,true,244.69,false,0]]}
脚本调用是:
function read_hosts{
hosts = $(cat "$1")
}
read_hosts $@
并且,hosts.txt 包含以下内容:
./nexthelper.sh hosts.txt
当我运行代码时,它在 localhost
www.google.com
行抛出一个语法错误。任何帮助将不胜感激!
解决方法
EDIT 在 OP 确认 =
周围没有语法错误后
建议使用这个语法,因为你已经习惯了 C++
函数定义缺少 ()
跟随名称
function read_hosts(){
# ...
}
其他语法
- 如果函数名后有空格或换行符,可以省略
()
function function_name {
}
- 如果使用了
function
,则()
关键字是可选的
在 bash
中,为变量赋值(或设置变量)的语法是
variableName=variableValue
请注意 =
两侧缺少空间。
这是因为 bash 将空格包围的所有内容拆分为一个命令。因此,当您尝试 hosts = "something"
时,bash 本质上是在尝试执行一个名为 hosts 的命令,然后是一个名为 = 的命令和一个名为 something 的命令。
删除空格告诉 bash 您正在尝试为变量赋值。
以下是我个人用来学习 bash 的一些资源:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。