単一の引数で複数のスペースをバッシングします。

単一の引数で複数のスペースをバッシングします。

複数のパラメータと1つのパラメータに複数のフラグを使用してbashを作成する方法を見つけようとしています。 xtermを開き、bashスクリプトに移動して引数を使用して実行するには、これを行う必要があります。

これは私のコードです。

#!/bin/bash
if [ "$Running_In_New_Xterm" != t ] ; then
Running_In_New_Xterm=exec xterm -hold -e "cd $3 && $1 $2"
Running_In_New_Xterm=t
fi

$ 2は$ 1にフラグを発行するコマンドです。-a blah -o blahblah

#2を実行する正しい方法を決定しようとしています。複数の空白引数がある場合は、「」を追加する必要があることを読んでいますが、入力側でこれを試しましたが、うまくいきませんでした。 '' 一致の検索中に予期しない EOF が発生しました。これは、私の問題は、$ 2が正しく実行されていないという事実に関連していることを意味します。これはbash自体と関係があると思います。

答え1

cd $3 && $1 $2呼び出せるプログラムではありません。あなたはする必要があります

Running_In_New_Xterm=exec xterm -hold -e bash -c "cd $3 && $1 $2"

または(引数が必要な場合は引用符を使用してください。-a blah -o blahblahおそらく引用しないでください)

Running_In_New_Xterm=exec xterm -hold -e bash -c "exec cd '$3' && exec '$1' '$2'"

関連情報