为sdkman安装了`sdk`命令在哪里

时间:2017-07-08 16:18:35

标签: linux bash sdkman

我刚安装sdkman用于在我的机器(MacOS)上安装grails。当我运行// file1.csv: Ram,30,Engineer,40000,600*200 Bala,27,Doctor,30000,800*400 Hari,33,Engineer,50000,700*300 Siva,35,Doctor,60000,600*200 // file2.csv Hari,Bangalore Ram,Chennai Bala,Bangalore Siva,Chennai val df1 = spark.read.csv("/path/to/file1.csv").toDF( "name", "age", "title", "salary", "dimensions" ) val df2 = spark.read.csv("/path/to/file2.csv").toDF( "name", "location" ) import org.apache.spark.sql.functions._ import org.apache.spark.sql.types.IntegerType val dfAverage = df1.join(df2, Seq("name")). groupBy(df2("location")). agg( avg(split(df1("dimensions"), ("\\*")).getItem(0).cast(IntegerType)).as("avg_length"), avg(split(df1("dimensions"), ("\\*")).getItem(1).cast(IntegerType)).as("avg_width") ). select( $"location", $"avg_length", $"avg_width", concat($"avg_length", lit("*"), $"avg_width").as("avg_dimensions") ) dfAverage.show +---------+----------+---------+--------------+ | location|avg_length|avg_width|avg_dimensions| +---------+----------+---------+--------------+ |Bangalore| 750.0| 350.0| 750.0*350.0| | Chennai| 600.0| 200.0| 600.0*200.0| +---------+----------+---------+--------------+ 命令时,我没有得到任何输出。但是当我运行which sdk命令时,shell能够解析它并提供正确的输出。我检查了$ PATH环境变量中提到的所有目录,但是我找不到任何可执行文件sdk help。所以我的问题是shell如何解析sdk命令?

注意:我也检查了Ubuntu,我看到了相同的行为。

enter image description here enter image description here

2 个答案:

答案 0 :(得分:2)

行。所以我发现了。正如上面评论中提到的@ that-other-guy,我使用type -a而不是which,这表明它是一个定义的函数。

答案 1 :(得分:0)

正如您正确提到的那样,“ sdk”不是命令,它是由sdkman-main.sh(在〜/ .sdkman / src中)创建的已声明函数,曾经从〜/ .sdkman / bin / sdkman-init.sh调用

这就是installation page of sdkman要求在.bash_profile中附加以下步骤的原因,该步骤在每次加载bash配置文件时声明此功能:

#此内容必须在SDKMAN的文件末尾!!!

[[-s“ /home/dudette/.sdkman/bin/sdkman-init.sh”]] &&来源“ /home/dudette/.sdkman/bin/sdkman-init.sh”

这也是“哪个”命令在Linux PATH中检查已安装命令时未选择它的原因。