- 寫一腳本 /root/program 提供以下功能:
- 執行 /root/program kernel 回應 user 到 stdout。
- 執行 /root/program user 回應 kernel 到 stdout。
- 執行 /root/program 不加任何參數或參數不是 user 或 kernel 時,輸出以下結果到 stderr:
/root/program kernel|user
- 編輯 /root/program
[root@kvm5 ~]# vim /root/program
- 第一種寫法
[root@kvm5 ~]# cat /root/program
#!/bin/bash
[ "$1" == "kernel" ] && echo user && exit
[ "$1" == "user" ] && echo kernel && exit
echo "/root/program kernel|user" >&2
exit 0
- 第二種寫法
#!/bin/bash
if [ "$1" == "kernel" ]; then
echo user
elif [ "$1" == "user" ]; then
echo kernel
else
echo "/root/program kernel|user" >&2
fi
exit 0
- 第三種寫法
#!/bin/bash
case "$1" in
"kernel")
echo user
;;
"user")
echo kernel
;;
*)
echo "/root/program kernel|user" >&2
;;
esac
exit 0
- 變更腳本屬性為所有人都可執行。
[root@kvm5 ~]# chmod a+x /root/program
- 執行腳本 /root/program,參數 kernel,回應 user 如要求。
[root@kvm5 ~]# /root/program kernel
user
- 執行腳本 /root/program,參數 user,回應 kernel 如要求。
[root@kvm5 ~]# /root/program user
kernel
- 執行腳本 /root/program 不提供參數,顯示訊息如要求,而且將 stderr 導向到 /dev/null 後,螢幕上沒有任何回應,證明回應的訊息確實是送到 stderr,而不是 stdout。
[root@kvm5 ~]# /root/program
/root/program kernel|user
[root@kvm5 ~]# /root/program 2>/dev/null
- 執行腳本 /root/program 提供參數 abcd,顯示訊息如要求,而且將 stderr 導向到 /dev/null 後,螢幕上沒有任何回應,證明回應的訊息確實是送到 stderr,而不是 stdout。
[root@kvm5 ~]# /root/program abcd
/root/program kernel|user
[root@kvm5 ~]# /root/program abcd 2>/dev/null
[root@kvm5 ~]#