0

我需要理解以下代码行:

BIN_DIR=`grep BIN_DIR= $SMLCM | head -1`

where$SMLCH包含路径

这是我到目前为止所理解的:

  • grep将产生一些字符串,可能的路径。grep 有什么作用BIN_DIR=

  • 路径被传递给 head 并且路径中的所有文件都将用于提取它们的第一行

  • 某些东西被评估(究竟是什么?)并存储在BIN_DIR

此致,

西蒙

4

3 回答 3

1
  • grep 将匹配由 var $SMLCM 命名的文件内容中包含 BIN_DIR= 的每一行
  • 头将采取第一行
  • 此行(反引号内的命令的结果)被重新分配给 BIN_DIR
于 2009-09-22T16:02:39.160 回答
1

这将在 $SMLCM 变量中指定的文件中找到文字字符串“BIN_DIR=”的所有出现,并且只获取该输出的第一行并将其分配给 BIN_DIR。

请注意,这可能无法按您希望的方式工作,因为分配给 BIN_DIR 的是一些字符串,例如“BIN_DIR=blah”,它可能具有与以下相同的效果:

BIN_DIR="BIN_DIR=blah"

于 2009-09-22T16:03:08.737 回答
0

这将仅提取$BIN_DIR它第一次出现在指向的文件中的值,并将其分配给当前脚本中$SMLCM的变量:$BIN_DIR

BIN_DIR=$(sed -n 's/^BIN_DIR=\(.*\)$/\1/p' $SMLCM | head -n 1)
  • sed -n: 运行流编辑器,不要打印出现的每一行
  • s/: 代替
  • ^BIN_DIR=: 以文本 "BIN_DIR=" 开头 ("^") 的行
  • \(.*\)$: 并以零个或多个 ("*") 任意字符 (".") 的组 ("\( \)") 结束 ("$")
  • /: 将匹配替换为
  • \1:第一个(在这种情况下,仅)组的内容
  • /p: 完成替换并打印结果
于 2009-09-22T17:07:29.433 回答