来自.configure文件的bash代码行

时间:2009-09-22 15:58:13

标签: bash grep configuration-files pipe head

我需要了解以下代码行:

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

其中$SMLCH包含路径

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

  • grep会生成一些字符串,可能的路径。 grep对BIN_DIR=做了什么?

  • 将pathes传递给head,路径中的所有文件将用于提取第一行

  • 评估某些内容(究竟是什么?)并存储在BIN_DIR

致以最诚挚的问候,

西蒙

3 个答案:

答案 0 :(得分:1)

  • grep将匹配包含BIN_DIR =在var $ SMLCM
  • 指定的文件内容中的每一行
  • 头将占据第一行
  • 此行(后面刻度内的命令结果)重新分配给BIN_DIR

答案 1 :(得分:1)

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

请注意,这可能不会按照你想要的方式工作,因为什么被分配到BIN_DIR是一些字符串,如“BIN_DIR = blah”,它可能具有与以下相同的效果:

BIN_DIR = “BIN_DIR =嗒嗒”

答案 2 :(得分:0)

$BIN_DIR首次出现在$SMLCM所指向的文件中,并将{<1}}分配给变量$BIN_DIR当前的脚本:

BIN_DIR=$(sed -n 's/^BIN_DIR=\(.*\)$/\1/p' $SMLCM | head -n 1)
  • sed -n:运行流编辑器,不要打印出现的每一行
  • s/:替换
  • ^BIN_DIR=:一行以(“^”)开头,文字“BIN_DIR =”
  • \(.*\)$:结束(“$”)一个组(“\(\)”)为零或更多(“*”)的任何字符(“。”)
  • /:将此匹配替换为
  • \1:第一个(仅在此情况下)组的内容
  • /p:完成替换并打印结果