1

次のようなファイルを調べるスクリプトがあります。

for item in `more $dir_tmp/$lcl_ident_cnl.root.tmp`
    do
        txtPos=`expr index "$item" "."`
...

これは私にこれを取得します:

+ more /gcamp/dbm/processos/temp/tlv.root.tmp
+ expr index :::::::::::::: .

しかし、このファイルには実際には「wca」が含まれています。

$ for item in `cat tlv.root.tmp`
> do
>  echo "${item}"
> done
wca

このファイルのエンコーディングは

$ file tlv.root.tmp
tlv.root.tmp: ASCII text

::::::::::::::の代わりに取得するのはなぜwcaですか?

4

2 に答える 2

1

はるかに良い方法はおそらく

while read -r item
do
  txtPos=`expr index "$item" "."`
done < "$dir_tmp/$lcl_ident_cnl.root.tmp"

ありがとうchepner

于 2013-03-08T19:00:58.207 に答える
1

これらのコロン文字は、コマンドを待機しているときにmore(1)が表示するプロンプトのように疑わしく見えます。

のようなプログラムmoreはスクリプト化することを意図していません。おそらくcat、両方のスクリプトで使用する必要があります。

于 2013-03-08T18:59:54.477 に答える