#!/bin/bash
while echo -n "Player's name?"
read name
[ $name != 'ZZZ' ]
do
searchresult=$(grep [$name] playername)
if [ $searchresult=0 ]
then
echo -n "if See target (T/t) or team name (M/m)?"
read team
read target
while [ [ $target!=T ] || [ $team!=M ] ]
do
echo "Please enter only T or M."
done
if $target=T
then
grep [ $name ] targetselected
else
grep [ $name ] teamselected
fi
else
echo 'no such player'
fi
done
echo You are now exited search
0
A
回答
0
不知道它在發佈代碼行10你指着但我發現你貼的代碼一些問題如
行while [ [ $target!=T ] || [ $team!=M ] ]
應該
while [ $target!="T" ] || [ $team!="M" ]
此外,if $target=T
應該相應地if $target="T"
0
這兩行:
searchresult=$(grep [$name] playername)
if [ $searchresult=0 ]
是非常錯誤的。如果你正試圖確定grep
成功,這是最好的事情:
if grep -q "$name" playername; then ...
把grep的在$()
和分配到SearchResult中有你比較grep
的輸出,而不是檢查其退出狀態。而在第二行=
附近缺少的空間是非常錯誤的。假設searchresult
是一個不包含空格和只包含字母數字字符的字符串,因此字符串「$ searchresult = 0」始終爲非空,因此行if [ $searchresult=0 ]
將始終計算爲true。 (如果searchresult是空字符串,那麼$searchresult=0
是非空的字符串=0
,因此測試成功。)您打算測試該字符串是否爲空是非常不可能的。您所看到的確切錯誤表明grep
正在爲包含空格的searchresult
賦值。在這種情況下,[ $searchresult=0 ]
(不包括雙引號$searchresult
)正由[
作爲多個參數進行分析(在$searchresult
的空白處分割),並且錯誤告訴您參數太多。
相關問題
- 1. unix腳本有什麼問題
- 2. 我的bash腳本有什麼問題?
- 3. 我的腳本有什麼問題?
- 4. 我的腳本有什麼問題?
- 5. 我的python腳本有什麼問題?
- 6. 我的bash腳本有什麼問題?
- 7. 我的Powershell腳本有什麼問題?
- 8. 我的腳本有什麼問題?
- 9. 我的腳本有什麼問題嗎?
- 10. 我的.bat腳本有什麼問題?
- 11. 我的shell腳本有什麼問題
- 12. 腳本有什麼問題?
- 13. 以下Unix shell腳本有什麼問題?
- 14. 我的腳本有什麼問題...日期範圍腳本
- 15. 什麼是錯我的UNIX腳本
- 16. 衝突的腳本,有什麼問題?
- 17. 我的頁腳有什麼問題?
- 18. mac unix腳本問題
- 19. 我的CURL腳本有什麼問題,我通過插件IP
- 20. 我的腳本有「ssh + nohup」有什麼問題
- 21. 這個javascript腳本有什麼問題?
- 22. 這個bash腳本有什麼問題?
- 23. 這個PHP腳本有什麼問題?
- 24. 這個bash腳本有什麼問題?
- 25. 這個PHP腳本有什麼問題?
- 26. 這個php腳本有什麼問題?
- 27. 這個PowerShell腳本有什麼問題?
- 28. 以下Python腳本有什麼問題?
- 29. 這個Shell腳本有什麼問題?
- 30. 這個腳本sql有什麼問題?
你應該把'read'放在'while'裏面,否則''while'永遠不會返回false,因爲它每次都做同樣的事情? – heltonbiker
如果您指出第10行的位置,那麼它會很有幫助,上面的第10行是空行。 –
謝謝,第10行是if [$ searchresult = 0] – user2864813