0

私は bash が初めてで、文字通り何時間もかけてこれを理解しようとしましたが、行き詰まっています。

pyLoad でのダウンロードの完了時に自動実行されるスクリプトを作成しています。パッケージ名の最初の単語が「Public」かどうかを確認する必要があります。

デバッグしようとしている間、私はこれまでにこれを得ました:

#!/bin/sh
PACKAGE="$1"
PATH="$2"

FIRST=$(echo $PACKAGE|awk '{print $1}')
echo "First word is: $FIRST"

sh download.sh "test package" ~/リターンを使用してこれを実行する

download.sh: 5: download.sh: awk: not found

「テストパッケージ」が引用符で囲まれているかどうかに関係なく、同じ結果が得られます。

私の目的は、次のようなものに到達することです。

if [ $FIRST == "public"  ]
then
    # Move to public folder
else
    # Do nothing
fi

どんな助けでも大歓迎です。

OS: Ubuntu 12.04 x64

パス =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

4

2 に答える 2

2

awk: 見つかりません

PATH 変数を再定義するためです。内部 PATH 変数に別の名前を使用してみてください。

于 2013-09-12T18:03:02.443 に答える
0

他のオプションを使用できます。

[[ $PACKAGE =~ ^[[:space:]]*([^[:space:]]+) ]]
FIRST=${BASH_REMATCH[1]}
echo "First word is: $FIRST"

または

FIRST=${PACKAGE%%[[:space:]]*}
echo "First word is: $FIRST"
于 2013-09-12T17:57:04.223 に答える