0

これが非常に単純な場合はご容赦ください。ただし、私はプログラマーではないため、何が簡単で何が難しいかを判断するのは困難です。

基本的に「info customername」を実行する内部顧客データを見つけるために使用する(他の誰かが書いた)bashスクリプトがあり、内部顧客データベースを検索して、その顧客名に一致するすべての顧客レコードを検索し、アカウントのリストを出力します「Sample Customer - 111119382818873」の形式の番号 (すべて同じ 11111xxxxxxxx のプレフィックスが付いています)。

「extrainfo 11111xxxxxxxx」と入力する別の bash スクリプトがあります。アカウントから平文データを取得し、私たちにとって重要な多くのことに使用します。

欠落している機能は、「extrainfo」が名前で検索できず、番号のみで検索できることです。だから、そのギャップを埋めたい。理想的には、「extrainfo customername」と入力すると、「info customername」を使用して検索が実行され、結果のリストがメニューとして生成され、意図した顧客を選択できるようになり、「extrainfo 11111xxxxxxxxx」コマンドが実行されます。その顧客。一致するものが 1 つしかない場合は、extrainfo コマンドが自動的に適切に実行されます。

これが機能するものですが、「info customername」が生成する最初の結果に対してのみです。

#!/bin/bash
key=`/usr/local/bin/info $1 | grep 11111 | awk '{print $NF}'`
/usr/local/bin/extrainfo $key

なかなか解らないメニューですね。これが明確であることを願っていますが、繰り返しになりますが、私はこのようなことにはかなり頭が悪いので、おそらく重要なことを忘れてしまいました. ありがとう。

4

2 に答える 2

0

基本的に、このスクリプトはすべての顧客情報を読み取り、顧客番号のプレフィックスを持つすべての行を検索して、search.txt に読み込みます。次に、先頭に行番号を付けてファイルを表示し、ユーザーが行番号を選択するのを待ってから、顧客 ID の前にある顧客名とスペースを取り除きます。最後に、顧客 ID だけを使用して別のスクリプトを実行します。ハックですが機能的です。

#!/bin/bash
/usr/local/bin/info $1 | grep 11111 > search.txt
cat -n search.txt
read num
key=`sed -n ${num}p search.txt | awk '{print $NF}'`
/usr/local/bin/extrainfo $key
于 2013-08-13T12:44:59.633 に答える