私は答えが見つからないという面白い問題があります。私は、デンジャー部門がNginXと設定ファイルを持つドッカーのコンテナを自動的に起動するのに役立つ簡単なアプリケーションを作成しています。私の問題は、何らかの理由で、ディレクトリをスキャンしている間、bashスクリプトがフォルダの名前を格納することができないということです。ここで私は、その後folder_test.shように、その簡単なスクリプトを保存し、1つのフォルダのみ、変更の所有者が私にはありますフォルダに入れて引数に指定された変数に関数出力を保存する
#!/bin/bash
getFolder() {
local __myResultFolder=$1
local folder
for d in */ ; do
$folder=$d
done
__myResultFolder=$folder
return $folder
}
getFolder FOLDER
echo "Using folder: $FOLDER"
....私が何を言っているかの非常に単純な例であります正しいアクセス許可を与えます。私は、スクリプトを実行したときしかし、私は引用符の異なる種類に$folder=$d
一部を入れて試してみました
./folder_test.sh: 8 ./folder_test.sh: =test_folder/: not found
...エラーを取得しておくが、何も働きません。私は試してみた$folder="'"$d"'"
、$folder=`$d`
、$folder="$d"
しかし、それは動作しません。私を狂って運転すると、どんな助けも大歓迎です。ありがとうございました。
http://shellcheck.net/すると、自動的にあなたのためにこれをキャッチします。 –
ところで、 'local d 'にもマークをつけていなければ、それをあなたの関数の外側スコープに漏らしています。 –
Hrm。あなたの目標は間接的な割り当てを行うことです。申し訳ありません - 私はそれを閉じてはいけません。 –