以下のようなシェルコードrun.shがあります。
#!/bin/sh
PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
export LD_LIBRARY_PATH="../../lib"
mp3proc=mp3proc
if [ ! -f "$mp3proc" ]; then
ln -s mp3decode $mp3proc
fi
inputsonglist="$1"
intputflag="$2
cat $inputsonglist | while read line
do
echo "$line"
./"mp3proc" ${line} $inputflag
done
ここで、inputsonglistは、以下のように処理される mp3 ファイル リストのフル パスを格納した txt ファイルです。
/home/user_01/music/wcbz.mp3
/home/user_01/music/wf_hh.mp3
/home/user_01/music/zj_lw.mp3
/home/user_01/music/zj_jjdzf.mp3
/home/user_01/music/zj_jsqsjywwd.mp3
/home/user_01/music/zj_sh.mp3
/home/user_01/music/zj_tbaw.mp3
mp3procは、2 つのパラメーターを受け入れる私の実行可能プログラムです。
mp3 ファイルを見つける完全な mp3 パス
フラグ、0 または 1
ただし、このシェル スクリプトを次のように実行すると、次のようになります。
./run.sh list.txt 0
次のエラーに遭遇しました:
/home/user_01/music/wcbz.mp3
./run.sh: line 27: 21068 Segmentation fault ./"mp3proc" ${line} $inputflag
/home/user_01/music/wf_hh.mp3
./run.sh: line 27: 21069 Segmentation fault ./"mp3proc" ${line} $inputflag
/home/user_01/music/zj_lw.mp3
./run.sh: line 27: 21070 Segmentation fault ./"mp3proc" ${line} $inputflag
/home/user_01/music/zj_jjdzf.mp3
./run.sh: line 27: 21071 Segmentation fault ./"mp3proc" ${line} $inputflag
/home/user_01/music/zj_jsqsjywwd.mp3
./run.sh: line 27: 21072 Segmentation fault ./"mp3proc" ${line} $inputflag
/home/user_01/music/zj_sh.mp3
./run.sh: line 27: 21073 Segmentation fault ./"mp3proc" ${line} $inputflag
ここで「セグメンテーション違反」が発生した理由がわかりません???!!!
誰か助けて?どうもありがとう!