Để xem status của câu lệnh trước đó, bạn dùng
echo $?
Hiển thị các bài đăng có nhãn shell script. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn shell script. Hiển thị tất cả bài đăng
Thứ Bảy, 21 tháng 6, 2014
Shell script: Ứng dụng cú pháp logic
Cú pháp logic:
cm1||cmd2: chỉ duy nhất một trong hai cmd được thực hiện cho status = 0. Vì command sau chỉ hoạt động nếu command trước trả về status != 0.
cmd1&&cmd2: đảm bảo cả hai cmd đều được thực hiện cho status = 0. Vì command sau chỉ hoạt động nếu command trước trả về status = 0
Trên linux, mỗi một cmd được thực hiện đều trả về một status. Status == 0 là lệnh thực hiện thành công. Status != 0 là lệnh thực hiện không thành công.
Ví dụ:
ls /tmp/testing||mkdir /tmp/testing
In ra directory /tmp/testing nếu nó tồn tại, nếu không thì tạo dierctory đó.
[ -f /tmp/test ]&&echo "File is exist"||echo "File is not exists"
Kiểm tra /tmp/test có tồn tại hay không. Nếu tồn tại, status trả về 0, chạy tiếp lệnh echo "File is exists", status tiếp tục trả về 0 làm cho command cuối không thực hiệnđược
Nếu /tmp/test không tồn tại, status trả về khác 0, câu lệnh thứ hai không thực hiện được, tiếp đến câu lệnh cuối thực hiện được vì status hiện thời đang là != 0.
cm1||cmd2: chỉ duy nhất một trong hai cmd được thực hiện cho status = 0. Vì command sau chỉ hoạt động nếu command trước trả về status != 0.
cmd1&&cmd2: đảm bảo cả hai cmd đều được thực hiện cho status = 0. Vì command sau chỉ hoạt động nếu command trước trả về status = 0
Trên linux, mỗi một cmd được thực hiện đều trả về một status. Status == 0 là lệnh thực hiện thành công. Status != 0 là lệnh thực hiện không thành công.
Ví dụ:
ls /tmp/testing||mkdir /tmp/testing
In ra directory /tmp/testing nếu nó tồn tại, nếu không thì tạo dierctory đó.
[ -f /tmp/test ]&&echo "File is exist"||echo "File is not exists"
Kiểm tra /tmp/test có tồn tại hay không. Nếu tồn tại, status trả về 0, chạy tiếp lệnh echo "File is exists", status tiếp tục trả về 0 làm cho command cuối không thực hiệnđược
Nếu /tmp/test không tồn tại, status trả về khác 0, câu lệnh thứ hai không thực hiện được, tiếp đến câu lệnh cuối thực hiện được vì status hiện thời đang là != 0.
Shell script: Xác định pid của shell hiện tại và shell cha
Để xem pid của shell hiện tại:
echo $$
Để xem pid của shell cha:
echo $PPID
Trường hợp bạn mở một tty mới thì một login shell /bin/login sẽ được mở ra. Login shell này sẽ tạo ra shell con, là shell mà bạn thao tác.
Trường hợp bạn mở một pts mới thì một shell sẽ được mở ra. Đây là shell bạn thao tác. Shell này có cha là gnome-terminal (Trên các distro khác nhau thì shell này sẽ khác nhau)
echo $$
Để xem pid của shell cha:
echo $PPID
Trường hợp bạn mở một tty mới thì một login shell /bin/login sẽ được mở ra. Login shell này sẽ tạo ra shell con, là shell mà bạn thao tác.
Trường hợp bạn mở một pts mới thì một shell sẽ được mở ra. Đây là shell bạn thao tác. Shell này có cha là gnome-terminal (Trên các distro khác nhau thì shell này sẽ khác nhau)
Đăng ký:
Bài đăng (Atom)