以下bash脚本

时间:2015-08-14 05:06:04

标签: python bash base64

我有一个简单的问题。我从朋友处获得了以下bash脚本,但我不知道/inline/b64/是什么,以及以下代码段的工作原理。

我对bash和Python有一些经验,但我根本无法理解下面的代码片段。有谁能请给我一些启示?

更具体地说,

1)/inline/b64是什么意思?我在网上做了一些搜索,但我找不到任何线索。

2)以下命令是什么意思?

ENCODED_COMMAND=$(python <<EOF

3)这些编码的目的是什么?

#!/bin/bash

COMMAND="FILTER file utterance_id /tmp/my_utt_list"

ENCODED_COMMAND=$(python <<EOF
import base64
print base64.urlsafe_b64encode('$COMMAND')
EOF
)

$BIN --edit_commands="/inline/b64/$ENCODED_COMMAND" 

1 个答案:

答案 0 :(得分:3)

  1. 这取决于$BIN的值。据推测,这是一些支持--edit_commands标志的其他脚本。您需要其他脚本期望该值能够解释它。

  2. 这是结合了几个bash语法。首先,$(...)表示“执行封闭的命令并将其输出捕获为字符串”。其次,<<EOF表示直到第二个EOF的以下行应该传递给命令的标准输入。总而言之,这是在两个EOF之间执行Python脚本,捕获其输出,并将其分配给ENCODED_COMMAND变量。

  3. 脚本正在使用一些字符串$COMMAND,并使用Python base64.urlsafe_b64encode函数对Base64进行编码。然后编码的字符串被传递给一些未知的命令$BIN,这可能会对它做一些事情 - 可能以某种方式解码并执行它。