如何从bash中的PATH环境变量中获取第一个目录?

时间:2016-12-01 17:48:33

标签: bash

假设您的PATH环境变量包含由:分隔的路径列表,如何只将此列表中的第一个文件夹转换为另一个变量?

5 个答案:

答案 0 :(得分:3)

我假设你想用bash命令来做。试试这个:

SELECT 
    SUM(amount)
FROM 
    table1
INNER JOIN 
    (Select Distinct ID From table2) T2 ON table1.id = T2.id

答案 1 :(得分:2)

使用awk怎么样?

foo=`echo $PATH | awk -F':' '{ print $1}'`

答案 2 :(得分:2)

阅读第一个条目的一种方法是使用read并使用正确的IFS

IFS=: read firstPath _ <<< "$PATH"

echo "$firstPath"

您还可以使用IFS填充数组,并使用索引从数组中获取任何Nth位置:

IFS=: read -ra arr <<< "$PATH"

echo "First entry: ${arr[0]}"
echo "Second entry: ${arr[1]}"
echo "Fifth entry: ${arr[4]}"

另一个bash解决方案是在第一个:之后剥离所有内容:

firstPath="${PATH%%:*}"

答案 3 :(得分:1)

到目前为止,我能够使用echo ${PATH%%:*} 获得此功能,但我很高兴看到更好的实现。

答案 4 :(得分:1)

要么:

mydir=${PATH%%:*}

或者这个:

IFS=: read mydir t <<<"$PATH"

是很好的解决方案。