Là một phần của tập lệnh này, tôi cần có thể kiểm tra xem đối số đầu tiên được đưa ra có khớp với từ đầu tiên của tệp không. Nếu có, thoát với một thông báo lỗi; nếu không, nối các đối số vào tệp. Tôi hiểu cách viết if
câu lệnh, nhưng không biết cách sử dụng grep
trong tập lệnh. Tôi hiểu rằng grep
sẽ trông giống như thế này
grep ^$1 schemas.txt
Tôi cảm thấy như thế này sẽ dễ dàng hơn nhiều so với tôi đang làm nó.
Tôi nhận được một lỗi "quá nhiều đối số" trên if
câu lệnh. Tôi đã thoát khỏi khoảng trống giữa grep -q
và sau đó có một toán tử nhị phân lỗi dự kiến.
if [ grep -q ^$1 schemas.txt ]
then
echo "Schema already exists. Please try again"
exit 1
else
echo "$@" >> schemas.txt
fi
[
bài]
và nó sẽ hoạt động. Mặc dù bạn có thể muốn trích dẫn mô hình của mình:if grep -q "^$1" schemas.txt; then …