![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| bashの-の遅延展開変数 | scandora | シェルプログラミングとスクリプティング | 3 | 2009年2月18日 05:59午前 |
| 展開、 $ #もbashのスクリプトでワイルドカード展開後の高さ | zoo591 | シェルプログラミングとスクリプティング | 3 | 2008年7月25日 02:50午前 |
| パターンの拡大問題 | njoshi | シェルプログラミングとスクリプティング | 5 | 2007年4月24日 12:28午後 |
| AIXの拡張のCD | almuwatta | AIX | 0 | 2005年6月23日 05:07午後 |
| のHP - UXへのksh -変数を拡大 | dangral | UNIXのダミー質問と回答のため | 4 | 2005年2月8日 12:35午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
bashのブレースの拡大問題
私は、サーバープールのオプションに対して、スクリプトを実行するまでのスクリプトをしている。このオプションは、カンマ区切りのリスト(例として、与えられる。 - pの201204301 ) 。
私はevalを使用していると拡張支柱の配列にはプールの数を取得します。プールの場合以外は1号が与えられますが正常に動作します。ここでは、コード: コード:
while [ "$1" != "" ]; do
case $1 in
-p ) shift
pools=($(for i in $(eval echo {$1}); do echo $i; done | sort))
;;
コード:
[me@server bin]$ ./project_nunenhoffen.sh -p 201,202
+ '[' -p '!=' '' ']'
+ case $1 in
+ shift
+ pools=($(for i in $(eval echo {$1}); do echo $i; done | sort))
++ sort
+++ eval echo '{201,202}'
++++ echo 201 202
++ for i in '$(eval echo {$1})'
++ echo 201
++ for i in '$(eval echo {$1})'
++ echo 202
+ shift
+ '[' '' '!=' '' ']'
コード:
[me@server bin]$ ./project_nunenhoffen.sh -p 201
+ '[' -p '!=' '' ']'
+ case $1 in
+ shift
+ pools=($(for i in $(eval echo {$1}); do echo $i; done | sort))
++ sort
+++ eval echo '{201}'
++++ echo '{201}'
++ for i in '$(eval echo {$1})'
++ echo '{201}'
+ shift
+ '[' '' '!=' '' ']'
ありがとう、 マイクト |
|
||||
|
引用:
今のところ私はこの方法で問題を解決したのでお知らせします: コード:
while [ "$1" != "" ]; do
case $1 in
-p ) shift
case $1 in
*,* ) pools=( $(for i in $(eval echo {$1}); do echo $i; done | sort) ) ;;
* ) pools=$1 ;;
esac
;;
|