![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| bashのシェルスクリプトでシェルをshに | saurabh84g | シェルプログラミングとスクリプティング | 8 | 2008年8月29日 05:51午前 |
| 別のシェルはbash csh | ajp7701 | シェルプログラミングとスクリプティング | 1 | 2008年4月18日 04:19午後 |
| Cシェルはbashの代わりに | ajp7701 | シェルプログラミングとスクリプティング | 0 | 2008年3月18日 04:15午後 |
| bashシェル | BG_JrAdmin | リナックス | 1 | 2006年8月7日 01:56午後 |
| bashシェル... | VijayHegde | シェルプログラミングとスクリプティング | 2 | 2006年6月6日 08:09午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
bashシェル配管
こんにちはすべて、
私はbashのに新たなよ。私はシェルスクリプトで変数のサブ文字列を取得しようとしている。私は以下のエラーが表示されるのに対し、何を目指している: -------------------------------------------------- ---------------------- OHOME : /はaaa / BBBランク/製品/最も幅の広い 。 / t.sh :行6 : /はaaa / BBBランク/製品/最も幅の広い:そのようなファイルまたはディレクトリ Oracleの技術情報: -------------------------------------------------- ---------------------- ここでは、コードです: -------------------------------------------------- ---------------------- # ! / bin / shに OHOME \u003d /単4 / BBBランク/製品/最も幅の広い " OHOME : " $ OHOMEエコー \u003d $ OHOMEエコーO_BASE | awkは- F "を/ " ' ( ( ⅰ \u003d 2 ;私< \u003dのNF ;私+ + ) (場合( $私\u003d\u003d "製品" ) (終了; )一\u003dは" / " $私; ) ) ' " Oracleの技術情報: " $ O_BASEエコー -------------------------------------------------- ---------------------- 私は非常に驚いている。から"のように$ OHOMEエコー"私は、私はまだ、このエラーが表示されるなど、カッコ内は、シングル/ダブルクォーテーションを囲むように、いくつかのことを試みていないようだ。私は、本やGoogleからの構文が見あたらないのです ![]() 非常にシンプルに見えるが、私はこの何時間も足止めを食らっている。ガイドをすることができますおそらく私の専門家はこちら。 ここにわれわれのLinuxバージョンです: Linuxの<name> 2.6.9 - 67.0.20.ELsmp # 1 SMPを水6月18日12時40分四十七秒東部夏時間2008 i686 i686のI386 のGNU/リナックス ロッキー。 |
|
||||
|
あなたのコマンドを意味する OHOME \u003dエコー 中には、割り当ては、コマンドが実行される $ OHOME もちろんこれは、有効なコマンドではありません。
、バック( ASCIIと96ではなく、通常のストレート引用)にするコマンドの出力をキャプチャするには: コード:
O_BASE=`echo $OHOME | awk -F"/" '{for(i=2;i<=NF;i++) {if($i=="product"){exit;} a=a"/"$i; }} '`
お使いのシェルの代わりにバック$(...)ことができますが公称遺産にBourne shellの少ない携帯`...`はおそらく、読み取ることができません。 あなたのAwkのスクリプトでは、何もすると表示されません 1つの 一部を意味する場合、印刷する必要がある場合はそれをキャプチャします。 の最初の発生後にはすべてをはがす /製品/ あなたは、シェルの変数の代入メカニズムを使用することができます: コード:
O_BASE=${OHOME%/product/*}
時代別に編集最終; 2008年8月28日に 02:56午後..理由:変数の代入発言 |
|
||||
|
うわー..どうもありがとう。私は`時のHPからそれ以上のコピーを忘れてしまった。これで動作すると両方の`` $(..)
2回目の提案" O_BASE \u003d $ ( OHOME % /製品/ * ) "完璧に、すべての追加なしで動作します。私は、一-は、構文を学ぶのにいい本を入手する必要があります理解することはできません。 3番目の部分では、 Awkの方法は、この作品は、一分野としての最初のスラッシュの前の部分を想定しています: " /単4 / BBBランク/製品/最も幅の広い" 。この1つでは、 Awkのはaaa BBBランク1と2番目のフィールドは、 3番目のフィールドです。 問題は解決します。お世話になりましたがたくさん。 |
|
|||||
|
この リファレンスカード [詳細含まれます。 Bashスクリプトガイドからapendix (http://tldp.org/LDP/abs/html/)私に' cosを私のための正しい構文を覚えて文字列を切ることはできないが重宝されています。
|