Viết kịch bản Terminal Service - Phần 3

Chia sẻ: Hoang Nhan | Ngày: | Loại File: PDF | Số trang:12

0
158
lượt xem
31
download

Viết kịch bản Terminal Service - Phần 3

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục tiêu của chúng tôi là giới thiệu cho các bạn một số lệnh để các bạn có thể sử dụng và giới thiệu cả cách xây dựng một số kịch bản bằng cách sử dụng các lệnh này. Phần này, chúng tôi sẽ tiếp tục giới thiệu về một số lệnh tiếp theo.

Chủ đề:
Lưu

Nội dung Text: Viết kịch bản Terminal Service - Phần 3

  1. Viết kịch bản Terminal Service - Phần 3 Nguồn : quantrimang.com  Brien M. Posey Quản trị mạng - Cho đến phần này, chúng tôi đã giới thiệu cho các bạn một số lệnh có thể sử dụng để thực hiện một số nhiệm vụ từ dòng lệnh trong môi trường Terminal Service. Mục tiêu của chúng tôi là giới thiệu cho các bạn một số lệnh để các bạn có thể sử dụng và giới thiệu cả cách xây dựng một số kịch bản bằng cách sử dụng các lệnh này. Phần này, chúng tôi sẽ tiếp tục giới thiệu về một số lệnh tiếp theo. Change User Terminal Services cung cấp hai chế độ hoạt động cơ bản: chế độ thực thi và chế độ cài đặt. Thông thường, khi bạn thiết lập một session của terminal service, session sẽ hoạt động trong chế độ thực thi. Điều này có nghĩa rằng bạn hoàn toàn thoải mái trong việc chạy các ứng dụng, tuy nhiên bạn lại không được phép cài đặt các ứng dụng (chí ít cũng không ứng dụng chia sẻ). Trong thực tế, nếu bạn muốn chạy một ứng dụng có tên setup.exe trong khi đang hoạt động trong chế độ thực thi thì Terminal Services sẽ khóa cố gắng của bạn. Cách mà bạn cài đặt một ứng dụng trong môi trường terminal service thường liên quan đến việc sử dụng applet Add/Remove Programs của Control Panel. Điều này không giúp gì nhiều cho bạn nếu bạn cần cài đặt một chương trình bằng một kịch bản tự động. Đây chính là điểm mạnh của lệnh Change User. Lệnh này cho phép bạn xem bạn đang hoạt động ở chế độ nào và chuyển đổi các chế độ nếu cần. Cú pháp cho lệnh này thực sự rất đơn giản. Chỉ cần nhập vào lệnh Change User, sau đó là một tiếp lệnh thông báo cho lệnh đó những gì bạn muốn thực hiện. Tiếp lệnh /Query sẽ cho phép bạn biết được thông tin về chế độ mà bạn đang hoạt động hiện tại là gì. Tiếp lệnh /Execute lại cho phép bạn chuyển đổi sang chế độ thực thi, còn tiếp lệnh /Install lại cho phép bạn chuyển sang chế độ cài đặt. Một số môi trường kịch bản tỏ ra khá khó khăn trong vấn đề nhập vào lệnh gồm có nhiều từ. Biết được điều đó, Microsoft đã cho phép bạn thực hiện viết tắt cho lệnh này là CHGUSER. TSCON
  2. Như đã được nhắc đến trong loạt bài trước, chúng tôi đã giới thiệu cho các bạn cách sử dụng lệnh TSDISCON để hủy kết nối session của terminal service. Tuy nhiên lệnh TSCON lại thực hiện ngược lại, nó cho phép bạn kết nối với một session của terminal service. Trước khi giới thiệu cho các bạn về cách sử dụng lệnh này, bạn cần hiểu một chút về những gì mà nó thực hiện. Trái ngược với cách mà tên lệnh dường như mách bảo, lệnh này lại không thiết lập session của terminal service mới toanh mà thay vào đó nó cho phép bạn bỏ đi session đang tồn tại và kết nối với session khác đã được thiết lập. Nếu quan sát trong hình A, bạn sẽ thấy rằng chúng tôi đã sử dụng lệnh Query Session để hiển thị danh sách tất cả các session hiện đang được kết nối với máy chủ. Lúc này, chúng tôi đang kết nối với máy chủ thông qua các session 0. Bạn cũng sẽ thấy được rằng session số 1 đã bị hủy kết nối. Mặc dù session đã bị hủy kết nối nhưng chúng ta vẫn có thể sử dụng lệnh TSCON để kết nối nó. Hình A: Hình vẽ thể hiện trạng thái đang được kết nối với máy chủ thông qua session 0 Chúng tôi đã nhập vào lệnh TSCON và theo sau đó là số session muốn kết nối với (trong trường hợp này là 1) và ngay lập tức được kết nối với session. Chúng tôi sẽ giới thiệu màn hình capture của quá trình, nhưng tuy nhiên ở đây không có gì thể hiện vì session ban đầu đã bị hủy kết nối ngay lập tức, sau đó được gắn vào một session mới. Trong thực tế, nếu quan sát trong hình B, bạn sẽ thấy rằng các ứng dụng đang chạy trước session số 1 đang bị hủy kết nối hiện đang chạy bên trong kết nối của chúng tôi.
  3. Hình B: Khi kết nối với một session khác, bạn gia nhập session ở trạng thái hiện hành Như những gì bạn thấy, khi kết nối với một session khác, bạn sẽ gia nhập session đó trong trạng thái hiện hành của nó. Nếu các ứng dụng đang chạy trước kết nối của bạn với session thì bạn sẽ thấy các ứng dụng khi kết nối. Có hai thứ chính bạn cần biết về lệnh TSCON. Đầu tiên là bạn không nhất thiết bị hạn chế trong việc kết nối với các session mà bạn đã hủy kết nối. Trong thực tế, hãy quan sát trong hình C. Trước khi chúng tôi bắt đầu viết bài này, chúng tôi đã gắn với máy chủ sử dụng session 1. Sử dụng lệnh TSCON 0 để hủy kết nối session 1 và kết nối với session 0. Nếu bạn quan sát toàn bộ hình C thì bạn sẽ thấy được rằng session 0 đã được kết nối rồi.
  4. Hình C: Hoàn toàn có thể kết nối với một session đã được kết nối rồi Một thứ khác nữa mà bạn cần biết là, sau khi kết nối với một session khác, bạn luôn có thể sử dụng lệnh TSCON để hủy kết nối từ session đó, và quay trở về session gốc của bạn. Cho đến đây, bạn đã thấy những trường hợp sử dụng đơn giản của lệnh TSCON. Nếu nhìn vào hình C, bạn sẽ thấy rằng nó hiển thị cú pháp của lệnh này và một vài tùy chọn khác mà bạn có thể sử dụng khi kết nối với một session. Bạn hoàn toàn không cần phải lo lắng về việc sử dụng các tùy chọn này. Các tùy chọn sessionid, sessionname và /DEST:sessionname cung cấp cho bạn một số cách để chỉ định session mà bạn muốn kết nối tới. Một tùy chọn bạn nữa ở đây là tùy chọn /Password. Đây cũng là một tùy chọn khá quan trọng, nếu bạn đang kết nối với một session đã sở hữu thì bạn sẽ phải quan tâm đến việc chỉ định một mật khẩu. Mặc dù vậy, nếu bạn kết nối với một session đã được thiết lập bởi một ai đó thì bạn sẽ phải sử dụng tiếp lệnh /Password để chỉ định mật khẩu của người dùng đó. Cho ví dụ, giả dụ bạn muốn kết nối với session số 12, session đã được thiết lập bởi một người dùng khác. Nếu bạn biết mật khẩu của người dùng đó là P@ssw0rd chẳng hạn thì lệnh nhập vào sẽ như sau: TSCON 12 /PASSWORD:P@ssw0rd Lưu ý rằng bạn không phải quan tâm đến việc chỉ định username vì lệnh TSCON không quan tâm đến ai khởi tạo session miễn là bạn có một mật khẩu hợp lệ. Kết luận
  5. Cho tới đây, chúng tôi đã giới thiệu cho các bạn khá nhiều lệnh khác nhau nhằm xây dựng kịch bản terminal service. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu cho các bạn một chút về ngôn ngữ kịch bản để sử dụng các lệnh đó. Brien M. Posey Quản trị mạng - Cho đến đây, chúng tôi đã giới thiệu khá nhiều các lệnh khác nhau để các bạn có thể sử dụng nhằm xây dựng các kịch bản cho terminal server. Phần này chúng tôi tiếp tục bằng cách giới thiệu về một số kịch bản và một số cú pháp trong thực hiện lệnh. Khi nhìn lại các phần trước của loạt bài này, có một thứ mà bạn chắc hẳn sẽ lưu ý đó là có rất nhiều lệnh mà chúng tôi đã giới thiệu thiên về việc tạo các kiểu báo cáo khác nhau. Đó cũng là ý định mà trong phần này chúng tôi giới thiệu cho các bạn cách tạo một báo cáo đơn giản. Chúng tôi sẽ dần dần xây dựng trên kỹ thuật này cho các phần tiếp theo. Sau đó trong ở phần cuối của loạt bài sẽ giới thiệu cho các bạn cách tạo một số kịch bản sử dụng các lệnh mà chúng ta đã được biết nhưng không liên quan đến việc báo cáo. Thứ đầu tiên mà bạn cần biết về việc tạo kich bản nhằm tạo báo cáo là cách lưu báo cáo. Cho ví dụ, trong phần trước mà chúng tôi đã giới thiệu cho các bạn về cách sử dụng lệnh Query User thì việc nhập lệnh này vào cửa sổ lệnh sẽ hiển thị các thông tin về người dùng hiện đang kết nối với máy chủ của bạn. Mặc dù đây là một lệnh khá hữu dụng nhưng khả năng của nó cũng bị hạn chế khi chỉ sử dụng bản thân nó. Tất cả những gì mà nó thực hiện là hiển thị người dùng hiện đã đăng nhập. Hãy coi như bạn đã thực hiện xong vấn đề đó và bây giờ là lúc cần lưu các thông tin này để bạn có thể xem xét sau mà không cần chạy truy vấn. Cách đơn giản nhất để thực hiện điều này là hướng đầu ra vào một file bản ghi nào đó. Hệ điều hành Windows sử dụng dấu “>” để chỉ thị rằng đầu ra của lệnh sẽ được chuyển tiếp. Chính vì vậy, nếu bạn muốn tạo một file bản ghi gồm các kết quả của lệnh query user thì bạn cần nhập vào lệnh Query User, dấu “>”, và sau đó là đường dẫn và tên file của file bản ghi muốn tạo. Cho ví dụ, nếu bạn muốn tạo một file bản ghi có tên SAMPLE.LOG, hãy nhập vào lệnh dưới đây: QUERY USER > SAMPLE.LOG Trong ví dụ này, file bản ghi được ghi vào thư mục hiện hành bất kể mọi thứ. Tự file bản ghi này không hề có chút hấp dẫn nào. Nó thực sự không có gì ngoài một file văn bản. Công cụ thường dùng cho việc mở một file văn bản trong Windows là Notepad. Nhưng ở đây bạn có thể sử dụng lệnh Type để xem
  6. toàn bộ nội dung của file văn bản từ tiện ích dòng lệnh. Cho ví dụ, nếu muốn xem file bản ghi mà chúng ta vừa tạo, bạn chỉ cần nhập vào lệnh dưới đây: TYPE SAMPLE.LOG Bạn có thể thấy ví dụ về lệnh này trong hình A. Hình A: Lệnh Type cho phép bạn xem nội dung của file văn bản Đôi khi bạn có thể gặp tình huống trong đó file văn bản quá dài để có thể hiển thị đầy đủ, vì không có thanh cuộn màn hình. Khi xảy ra điều này, bạn có thể gắn thêm vào dấu (|) và từ “More” vào cuối của lệnh Type. Lệnh này sẽ làm cho Windows tạm dừng sau mỗi màn hình đầy thông tin, và đợi bạn nhấn phím tiếp theo trước khi hiển thị phần văn bản kế tiếp. Cho ví dụ, nếu file bản ghi mà bạn đã tạo quá dài đối với màn hình hiển thị thì bạn cần phải sử dụng những phần thêm dưới đây vào lệnh: TYPE SAMPLE.LOG | MORE Trong thế giới thực, bạn có thể sẽ không bao giờ tạo một file bản ghi gồm các kết quả của lệnh Query User. Lý do chúng tôi sử dụng lệnh này chỉ là giới thiệu những thứ đơn giản trước đề các bạn làm quen một cách từ từ. Tuy nhiên cũng có khá nhiều giá trị mang lại trong việc tạo file văn bản chứa các kết quả báo cáo. Tuy kỹ thuật này hoạt động khá tốt nhưng vẫn có một số vấn đề nhỏ phát sinh. Đầu tiên đó là bạn phải nhớ rằng mục tiêu của chúng tôi là xây dựng một kịch bản. Các kịch bản thường thiên về việc chạy nhiều lần. Bất cứ thời điểm nào bạn chuyển tiếp một đầu ra của lệnh vào một file, Windows sẽ kiểm tra xem file đó có tồn tại hay không. Nếu file này không tồn tại, Windows sẽ tạo một file mới
  7. có tên như bạn vừa đặt. Nếu file này đã tồn tại từ trước thì đầu ra sẽ được nối thêm vào phần cuối của file. Cách này tỏ ra khá nhiều ưu điểm nhưng đôi khi vẫn có một số vấn đề. Cách đầu ra được gắn vào file nếu file đó tồn tại khá hữu ích vì nó sẽ cho phép bạn tạo thêm nhiều báo cáo gắn cùng. Việc gắn các đầu ra chuyển tiếp vào một file tồn tại sẽ cho phép tạo kịch bản để xây dựng một báo cáo theo từng thời điểm thay cho việc phải đưa đầu ra vào các file riêng biệt. Cho ví dụ, giả dụ bạn tạo một kịch bản gồm có các lệnh dưới đây: Query User > sample.log Query Process > sample.log Query Session > sample.log Tiếp đó, một kịch bản giống như vậy có thể sẽ không hữu dụng nữa, nhưng khi kịch bản được hoàn tất, file bản ghi cuối cùng sẽ chứa đầu ra của các lệnh đã được thực thi. Tuy vậy, cách Windows nối thêm các thông tin vào các file văn bản đang tồn tại đôi khi không tốt. Giả dụ rằng bạn muốn tạo một kịch bản để tự động chạy ở một thời điểm cụ thể nào đó trong ngày. Trong tình huống như vậy, bạn có thể sẽ không muốn đầu ra được gắn vào phần cuối của file văn bản đang tồn tại hàng ngày. Thêm vào đó việc xóa file văn bản đang tồn tại này trước khi chạy kịch bản cũng là một tùy chọn không thiết thực. Trong các tình huống như vậy, bạn cần thiết kế một kịch bản thay đổi tên file mỗi lần kịch bản được chạy. Một file mới sẽ phản ánh được ngày hoặc thời gian khi chạy kịch bản. Giả dụ rằng bạn muốn đưa các kết quả đầu ra vào một file có tên được ấn định ngày. Lệnh này sẽ như sau: for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set datefile=%%i%%j%%k.log Query User > %datefile% Lệnh trên trông có vẻ như một lệnh sai ngữ pháp tuy nhiên chúng tôi sẽ giới thiệu cho bạn những gì được thực hiện trong lệnh đó ở phần tiếp theo. Kết luận Trong phần này, chúng tôi đã giới thiệu cho các bạn cách tạo các báo cáo trong một kịch bản. Trong phần tiếp theo của loạt này chúng tôi sẽ giới thiệu cho các bạn về cách xây dựng các khái niệm mà chúng ta đã thảo luận trong phần này.  
  8. Trong phần trước của loạt bài này, chúng tôi đã giới thiệu cho các bạn cách redirect đầu ra của lệnh vào một file văn bản, các thông tin được ghi vào file sau sẽ được gắn vào phần cuối của file. Chúng ta cũng đã phát hiện thấy một điều rằng, trong thế giới thực chúng ta cần đến nhiều tình huống sử dụng các file văn bản có tên riêng biệt thay cho việc sử dụng một file sau đó nối các thông tin mới vào phần cuối của file bản ghi đang tồn tại đó. Tiếp theo phần cuối của phần trước, chúng tôi đã cung cấp hai dòng mã bên dưới với tư cách một cơ chế cho việc tạo các file bản ghi có tên phân biệt: for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set datefile=%%i%%j%%k.log Query User > %datefile% Tuy nhiên, chúng tôi đã không giới thiệu nhiều về các dòng mã trên. Do việc tạo các file bản ghi là một khái niệm rất quan trọng nên chúng tôi quyết định sẽ dành phần này để giới thiệu cho các bạn kỹ về ý nghĩa của dòng mã trên làm việc như thế nào và bên cạnh đó là cách sử dụng chúng. Như đã đề cập từ trước, mục đích của đoạn mã làm mẫu này là nhằm tạo một file bản ghi có tên file phân biệt. Phần vấn đề liên quan tới việc tạo một tên file phân biệt là rằng nếu bạn tạo một tên file hoàn toàn ngẫu nhiên thì rất khó có thể chỉ ra file nào có chứa bản ghi nào. Chính vì vậy chúng tôi đã viết đoạn mã trên nhằm tạo một tên file phân biệt dựa trên ngày tháng hiện hành. Tuy nhiên, theo cách này filename không thực sự duy nhất nếu trường hợp bạn chạy các lệnh trên nhiều hơn một lần trong ngày, khi đó những lần chạy lệnh của bạn đều sinh ra cùng một filename. Chính vì vậy nếu cần tạo một file bản ghi phân biệt trong một ngày, bạn hãy tạo một filename phân biệt với nhau bằng thời gian hiện hành của ngày. Trước khi chúng tôi giới thiệu cho các bạn cách làm việc của lệnh trên như thế nào, chúng ta hãy xem xét đến cách hoạt động của các lệnh này trong môi trường thế giới thực như thế nào. Như những gì bạn có thể thấy trong hình A, chúng tôi đã tạo một file bản ghi có tên USER.BAT, sau đó đã chèn lệnh trên vào trong file. Trong trường hợp này có thể bạn chưa quen với file có đuôi mở rộng .BAT, các file này đơn giản là các file văn bản có chứa một hoặc nhiều lệnh. Mục đích của chúng là cho phép bạn xây dựng các kịch bản dựa trên các lệnh nhập vào riêng lẻ tại dấu nhắc lệnh.
  9. Hình A: Đây là cách các lệnh làm việc trong thế giới thực Nếu quan sát hình trên, bạn có thể thấy được rằng thứ đầu tiên mà chúng tôi đã thực hiện là sử dụng lệnh TYPE để hiển thị nội dung của file USER.BAT. Bước này thực sự không cần thiết nhưng chúng tôi chỉ thực hiện nó để thể hiện cho bạn biết rằng chúng ta đang sử dụng mã như đã được giới thiệu trong phần trước. Lưu ý tại nhắc lệnh kế tiếp, chúng tôi đã nhập vào lệnh USER. Bất cứ thời điểm nào bạn tạo file .BAT, thì tên mà bạn đã gán cho file đó sẽ được coi như thuộc về một file thực thi. Trong trường hợp này, tên của file .BAT là USER.BAT, chính vì vậy khi chúng ta nhập vào lệnh USER, Windows sẽ thực thi file .BAT. Ba nhắc lệnh tiếp theo bạn thấy trong hình trên được theo sau bởi rất nhiều lệnh. Bạn cần phải hiểu được rằng chúng tôi đã không đánh một cách thủ công các lệnh này mà thay vì đó, Windows sẽ thực thi mỗi lệnh tìm thấy trong file .BAT như cách các lệnh đó được nhập vào một cách thủ công. Một thứ mà chúng tôi muốn chỉ ra trước khi chuyển sang phần tiếp theo đó là, nếu bạn quan sát phần đầu của màn hình hiển thị (screen shot), nơi chúng tôi đã hiển thị nội dung của file .BAT thì dòng cuối cùng của file .BAT là: Query User > %datefile% Tuy nhiên, khi file .BAT xử lý lệnh Query User thì lệnh này sẽ giống như lệnh sau: Query User 1>04122008.log
  10. Ý của chúng tôi muốn nói ở đây là, mặc dù các file .BAT được thiết kế để phát các lệnh một cách tuần tự như kiểu chúng được nhập vào một cách thủ công thì vẫn có một sự khác biệt quan trọng giữa một lệnh trong file .BAT với một lệnh được nhập vào thủ công. Khi xử lý một lệnh với tư cách là một phần của file .BAT thì bạn có thể dựa vào một lệnh trên các kết quả của một lệnh trước. Trong trường hợp này, biến %datefile% đang được thay thế bởi 04122008. Có thể bạn sẽ phân vân rằng con số này phát sinh từ đâu thì đây chính là ngày thực hiện lệnh 04-12-2008. Như những gì bạn thấy trong hình trên, chúng ta đã có thể sử dụng ngày để tạo một file name. Phần phía dưới của hình, chúng ta đã sử dụng lệnh TYPE để hiển thị nội dung của file bản ghi đã được tạo, điều đó chứng tỏ mọi việc đến đây đều hoạt động êm xuôi. Trước khi bắt đầu nói về cách làm việc của từng lệnh riêng lẻ, chúng tôi muốn giới thiệu cho các bạn thêm một số mẹo. Khi quan sát hình ở trên, bạn sẽ rất khó khăn để thấy được sự khác biệt giữa các lệnh được nhập vào một cách thủ công và các lệnh được xử lý với tư cách là một phần của file .BAT. Các bạn nên biết rằng, các file .BAT thường dài hơn và phức tạp hơn nhiều so với file mà chúng tôi giới thiệu ở đây, trong tình huống như vậy, việc xem đầu ra của các lệnh trong file .BAT cần đến sự hỗ trợ của thanh cuộn màn hình, hoặc có thể khá khó khăn trong việc tìm ra vị trí của nó. Chính vì vậy nhiều lập trình viên mở đầu các file .BAT của họ với lệnh dưới đây: @echo off Echo là một lệnh thường được sử dụng cho việc hiển thị văn bản trên màn hình hoặc cho việc bổ sung thêm một dòng văn bản vào file nào đó. Cho ví dụ, nếu bạn muốn cấu hình một file .BAT để hiển thị cụm từ “Hello World”, hãy sử dụng lệnh dưới đây: Echo Hello World Chúng ta sẽ sử dụng lệnh echo để hiển thị trong loạt bài này, nhưng lúc này, có một một trường hợp sử dụng khác cho lệnh echo mà chúng tôi muốn giới thiệu đó là: khi bạn nhập vào lệnh ECHO OFF, Windows sẽ biết rằng bạn muốn tránh không cho các lệnh còn lại của file .BAT được hiển thị và chỉ muốn xem đầu ra của của file .BAT chứ không muốn xem bản thân các lệnh. Nếu bạn nhập vào lệnh ECHO OFF tại điểm bắt đầu của file .BAT thì lệnh Echo Off này sẽ hiện hữu, nhưng các lệnh khác thì không. Bạn có thể thấy được điều đó trong hình B bên dưới.
  11. Hình B: Lệnh Echo Off ngăn không cho các lệnh trước đó hiển thị Sử dụng lệnh này này làm xuất hiện nhiều từ “Echo Off” có thể khiến chúng ta hơi rối mắt. Chính vì vậy chúng tôi khuyên bạn lên gắn trước lệnh này một dấu @. Điều đó sẽ làm cho lệnh Echo Off không bị xuất hiện nhiều lần, xem thể hiện trong hình C. Hình C: Lệnh @Echo Off sẽ ẩn tất cả các lệnh khác OK, lệnh @Echo Off khá tốt trong việc ẩn các lệnh riêng rẽ có trong file .BAT, tuy nhiên nếu tình cờ theo dõi thì nó dường như không thực hiện gì. Chúng ta có thể khắc phục vấn đề này bằng cách thêm lệnh Echo vào file .BAT và gắn theo sau một dòng văn bản giải thích những gì diễn ra. Chúng ta có thể tạo một dòng ở cuối file trong đó lệnh Echo được sử dụng để nói cho người dùng biết rằng lệnh đã thực hiện thành công. Kịch bản như vậy được viết dưới đây:
  12. @Echo Off Echo Creating log file. for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set datefile=%%i%%j%%k.log Query User > %datefile% Echo Log file created successfully. Bạn có thể thấy đầu ra lúc này khi chạy kịch bản trên trong hình D. Hình D: Đây là đầu ra của kịch bản trên Kiểu đầu ra này giúp bạn đọc dễ dàng hơn rất nhiều, tuy nhiên có một số vấn đề ở đây. Cho ví dụ, chúng ta không thể thông báo cho người dùng biết nơi tìm kiếm file bản ghi, hoặc tên của file bản ghi là gì. Một vấn đề khác nữa là, lệnh này chỉ echo đơn giản một dòng văn bản nói rằng file bản ghi đã được tạo thành công. Đến đây, kịch bản vẫn chưa có cách để biết được file bản ghi đã được tạo thành công hay chưa. Chúng tôi sẽ để cập đến vấn đề này trong những phần tiếp theo. Kết luận Trong phần này, chúng tôi đã giới thiệu cho các bạn cách lắp ráp các lệnh vào một kịch bản và cách xóa đầu ra của kịch bản. Phần tiếp theo của loạt bài, chúng tôi sẽ nói về cách tên file bản ghi được tạo như thế nào.   
Đồng bộ tài khoản