このスクリプトを実行すると、出力が次のように表示されることがあります。
1912:! total e
ergy = -1090.13343774 Ry
2310:! total e
ergy = -1090.20757070 Ry
2709:! total e
ergy = -1090.24296462 Ry
3084:! total e
ergy = -1090.25563488 Ry
3483:! total e
ergy = -1090.27085564 Ry
3870:! total e
ergy = -1090.27693129 Ry
4245:! total e
ergy = -1090.28213580 Ry
4632:! total e
ergy = -1090.29131927 Ry
時には次のようになります。
1912:! total energy = -1090.13343774 Ry
2310:! total energy = -1090.20757070 Ry
2709:! total energy = -1090.24296462 Ry
3084:! total energy = -1090.25563488 Ry
3483:! total energy = -1090.27085564 Ry
3870:! total energy = -1090.27693129 Ry
4245:! total energy = -1090.28213580 Ry
これは単にバグですか、それとも誤ってコードから何かを変更しましたか?
パスワード:
cm=$1
nm=$2
case $cm in
"out")
declare -a en
ec=$(grep -n "! " hw1_out_si_wire.txt)
IFS='\n' en=($ec)
for i in ${en[@]}
do
echo "$i"
done
;;
"in") echo "It's not my problem";;
esac
答え1
IFS='\n'
内部フィールド区切り文字を2文字(\
バックスラッシュ)と文字で構成するように設定しますn
。IFS=$'\n'
改行文字のみを含めるように設定するには、このオプションを使用してください。