テキストファイルでパラメータ設定が機能しません。

テキストファイルでパラメータ設定が機能しません。

ここに私のコードがあります。

  #!/bin/bash

  set -- $(cat /home/jeevan/tempzen1.txt)
  zenity "$@"

tempzen1.txt ファイルには --list --title FILE-SELECTOR --column serialno が含まれています。 --列ファイル--幅1000 --高さ600 --radiolist TRUE "/home/jeevan/veryverylatest"

上記のコードは機能しませんが、以下のコードが機能するのはなぜですか?スクリプトにset argsを作成し、同じスクリプトでzenityを起動して動作しましたが、他のテキストファイルではないのはなぜですか?

これは私の作業コードです。

#!/bin/bash
set -- --list --title "FILE SELECTOR" --column serialno. --column file --width 1000 --height 600 --radiolist TRUE "/home/jeevan/very very latest"
zenity "$@"

ベストアンサー1

これは最後の質問とまったく同じです。パラメーターには$@1つのパラメーターのみが含まれています。つまり--list --title "FILE SELECTOR" --column serialno. --column file --width 1000 --height 600 --radiolist TRUE "/home/jeevan/very very latest"(たとえば、部分全体はスペース、引用符などを含む1つのパラメータです)、これを分割して複数のパラメータを渡そうとします。

解決策は、次のevalコマンドを使用することです。

set -- "$(cat /home/jeevan/tempzen1.txt)"
eval zenity "$@"

または直接的に良い方法は次のとおりです。

eval zenity "$(cat /home/jeevan/tempzen1.txt)"

おすすめ記事