linux - 如何在linux命令中放置变量?

标签 linux shell

我想知道如何在 linux 命令中放置变量,这是我的代码:


while read line
do
$site=$line
# execute extract command foreach line(each line contain a site name)
../../data/PROG/launch extractdata -hdf 2013-01-01,2014-01-01 -site  "$site"  >data/hour_$site_file.txt
 done < data/extract_site.txt

我解释一下:

这个文件“data/extract_site.txt”包含一个站点名称列表,每一行都是一个站点名称,对于每个站点我想提取数据并将命令的结果放在一个名为“hour_$site_file”的文件中。TXT”。 例如我有一个站点名称“OPE”,命令是: ../../data/PROG/launch extractdata -hdf 2013-01-01,2014-01-01 -site OPE 文件名为:hour_OPE_file.txt

当我执行时出现错误:未定义的命令“=OPE”

我是 shell 初学者,有什么帮助吗?

提前致谢。

PS:抱歉我的英语不好,我是法国人。

最佳答案

作为左值的变量名不需要$。

链接的变量名应括在括号中,如 hour_${site}_file.txt

while read line
do
site=$line
# execute extract command foreach line(each line contain a site name)
../../data/PROG/launch extractdata -hdf 2013-01-01,2014-01-01 -site  "$site"  >data/hour_${site}_file.txt
 done < data/extract_site.txt

关于linux - 如何在linux命令中放置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25114659/

相关文章:

linux - 无法安装 Homebrew 软件

linux - Linux 中的图像大小优化

linux - 让 Inotify 正确发出 IN_UNMOUNT 事件

shell - 如何杀死所有匹配名称的进程?

mysql - 为什么执行MySQL命令后反斜杠会转义

linux - 尝试在 sed 中打印每行的一部分

linux - 在 bash 中订购一个循环

linux - 根据另一个文件中的列对文件进行排序

linux - 如何将隐藏文件添加到我在 linux 上的查找候选人中

git - 允许代理转发使用 Cmder (ConEmu)