1

私はこれを解決できません.awkでの私のコマンドは十分ではないようです:

基本的に、単純な Linux ls -l から情報を抽出したいと思います。

ls -l /etc/alternatives/java

lrwxrwxrwx. 1 root root 29 Apr  5 12:28 /etc/alternatives/java -> /jre/IBM/JDK6SR10FP1/bin/java

次に、awk を使用してこの部分を取得します。

 ls /etc/alternatives/java -l | awk -F"->" '{print $2}'
 /jre/IBM/JDK6SR10FP1/bin/java

末尾の /bin/java を削除して有効な $JAVA_HOME にする必要があるため、bash でそれを行うにはどうすればよいですか?

私が欲しいのは:

/jre/IBM/JDK6SR10FP1

よろしくお願いします

4

1 に答える 1

2

コマンド置換/jre/IBM/JDK6SR10FP1/bin/javaを使用してこの値を割り当てたとします。JAVA_HOME

JAVA_HOME=$(ls /etc/alternatives/java -l | awk -F"->" '{print $2}')

次に、を使用して末尾部分を削除できます

JAVA_HOME=${JAVA_HOME%/bin/java}

詳細については、たとえば、「文字列の操作」セクションを参照してください。

于 2013-04-05T02:32:47.850 に答える