Tôi đang cố gắng thực hiện điều này mà không cần thêm mã bổ sung, chẳng hạn như mã khác cho vòng lặp. Tôi có thể tạo ra logic tích cực của việc so sánh một chuỗi với một mảng. Mặc dù tôi muốn logic âm và chỉ in các giá trị không có trong mảng, về cơ bản đây là lọc các tài khoản hệ thống.Trong Bash, làm thế nào để bạn thấy nếu một chuỗi không nằm trong một mảng?
thư mục My có tập tin trong nó như thế này:
admin.user.xml
news-lo.user.xml
system.user.xml
campus-lo.user.xml
welcome-lo.user.xml
Đây là mã tôi đã sử dụng để làm một trận đấu tích cực nếu tập tin đó là trong thư mục:
#!/bin/bash
accounts=(guest admin power_user developer analyst system)
for file in user/*; do
temp=${file%.user.xml}
account=${temp#user/}
if [[ ${accounts[*]} =~ "$account" ]]
then
echo "worked $account";
fi
done
Bất kỳ sự giúp đỡ trong đúng hướng sẽ được đánh giá cao, cảm ơn.
Bạn có thể có nghĩa là 'cho tệp trong người dùng/*; do' (lưu ý ';') – devnull
Cảm ơn, có ai đó đã chỉnh sửa câu hỏi của tôi và vô tình xóa trả lại hàng. – blamonet