shell script để nhận thông tin tài trợ của người dùng mysql


0

Tôi đang cố gắng để có được thông tin cấp người dùng mysql và gửi nó ra tập tin

hari =mysql -sN -e "show grants for mysqladm";

tiếng vang $ hari

GRANT ALL PRIVILEGES ON *prod_server_list.txt stage_server_list.txt user_grants1.txt user_grants.txt user_list_temp1.txt user_list_temp.txt* TO 'mysqladm'@'%' IDENTIFIED BY PASSWORD '*##############' WITH GRANT OPTION GRANT EXECUTE ON PROCEDURE `soxdv`.`chgpw` TO 'mysqladm'@'%' GRANT PROXY ON ''@'' TO 'mysqladm'@'%' WITH GRANT OPTION

Đó là nhận tên tệp .txt trong thư mục

Kết quả thực tế phải như dưới đây

show grants;
+------------------------------------------------------------------------------------------------------------------------------------+
| Grants for mysqladm@%                                                                                                              |
+------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'mysqladm'@'%' IDENTIFIED BY PASSWORD '*#############################' WITH GRANT OPTION |
| GRANT EXECUTE ON PROCEDURE `soxdv`.`chgpw` TO 'mysqladm'@'%'                                                                       |
| GRANT PROXY ON ''@'' TO 'mysqladm'@'%' WITH GRANT OPTION                                                                           |
+------------------------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

*.* đang được thay thế bằng tên tệp .txt

Vui lòng gợi ý cho tôi.

Câu trả lời:


0

Bạn cần trích dẫn những gì bạn lặp lại hoặc tiếng vang khác sẽ diễn giải ký tự đại diện với những gì nó tìm thấy trong thư mục khớp với một mẫu. Nó được gọi là continbing và có thể bị vô hiệu hóa.

box:[~/tmp/test]$ touch file.txt other.txt
box:[~/tmp/test]$ foo='*.txt'
box:[~/tmp/test]$ echo $foo
file.txt other.txt
nox:[~/tmp/test]$ echo '$foo'
$foo
box:[~/tmp/test]$ echo "$foo"
*.txt
box:[~/tmp/test]$ set -f 
box:[~/tmp/test]$ echo $foo
*.txt
  • Trong ví dụ ở trên, bạn có thể thấy rằng việc lặp lại mà không có dấu ngoặc kép sẽ dẫn đến hiện tượng toàn cầu.
  • Echo với dấu ngoặc đơn sẽ in ra những gì bên trong dấu ngoặc kép
  • Echo với dấu ngoặc kép sẽ in nội dung thay đổi nhưng sẽ không toàn cầu
  • Hoặc bạn có thể vô hiệu hóa globalbing với set và tự do echo mà không có dấu ngoặc kép.

Tôi sẽ khuyên bạn nên sử dụng dấu ngoặc kép hoặc dấu ngoặc đơn khi cần thiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.