ในฐานะที่เป็นส่วนหนึ่งของสคริปต์นี้ฉันต้องสามารถตรวจสอบได้ว่าอาร์กิวเมนต์แรกที่ระบุตรงกับคำแรกของไฟล์หรือไม่ หากเป็นเช่นนั้นให้ออกด้วยข้อความแสดงข้อผิดพลาด หากไม่มีให้ต่อท้ายอาร์กิวเมนต์ลงในไฟล์ ฉันเข้าใจวิธีเขียนif
คำสั่ง แต่ไม่ใช่วิธีใช้grep
ภายในสคริปต์ ฉันเข้าใจว่าgrep
จะมีลักษณะเช่นนี้
grep ^$1 schemas.txt
ฉันรู้สึกว่ามันน่าจะง่ายกว่าที่ฉันทำ
ฉันได้รับข้อผิดพลาด "มีการโต้แย้งมากเกินไป" ในif
คำสั่ง ฉันกำจัดช่องว่างระหว่างgrep -q
แล้วก็เกิดข้อผิดพลาดของผู้ให้บริการไบนารี่
if [ grep -q ^$1 schemas.txt ]
then
echo "Schema already exists. Please try again"
exit 1
else
echo "$@" >> schemas.txt
fi
[
...]
และมันจะได้ผล แม้ว่าคุณอาจต้องการที่จะพูดรูปแบบของคุณ:if grep -q "^$1" schemas.txt; then …