今天學習 鳥哥的 Linux 私房菜 -- 第 8 堂課:bash 指令連續下達與資料流重導向
使用 which 查詢指令
test@test:~$ which ifconfig
/usr/sbin/ifconfig
test@test:~$ which chfn
/usr/bin/chfn
鳥哥 :
指令是可以連續輸入的,直接透過分號 (;) 隔開每個指令即可..指令間不必有一定程度的相依性
像是我最常用的新增目錄馬上進去目錄
test@test:~$ mkdir demo; cd demo;
test@test:~/demo$
甚至可以將所有命令輸出在同一個檔案,使用 ( 命令 ) > 輸出檔案
test@test:~$ (date;uptime;uname -r) > test.txt
test@test:~$ cat test.txt
Wed 30 Sep 2020 12:02:01 PM UTC
12:02:01 up 1 day, 13:46, 2 users, load average: 0.00, 0.00, 0.00
5.4.0-47-generic
另外 &&
跟 ||
可以有邏輯的判斷
鳥哥 :
- command1 && command2
當 command1 執行回傳為 0 時(成功),command2 才會執行,否則就不執行。- command1 || command2
當 command1 執行回傳為非 0 時(失敗),command2 才會執行,否則就不執行。
像是 : 檢查目錄存不存在,假如不存在才建立用||
test@test:~$ ls -d demo2 || mkdir demo2
ls: cannot access 'demo2': No such file or directory
test@test:~$ ls
demo2
test@test:~$ ls -d demo3 && mkdir demo3
ls: cannot access 'demo3': No such file or directory
test@test:~$ ls
demo2
判斷某個檔案是否存在+說明,可以這樣處理 :
test@test:~$ ls -d demo && echo exist || echo non-exist
ls: cannot access 'demo': No such file or directory
non-exist
test@test:~$ mkdir demo
test@test:~$ ls -d demo && echo exist || echo non-exist
demo
exist
不想要無關指令結果也顯示,可以使用 &>
test@test:~$ ls -d demo &> null && echo exist || echo non-exist
non-exist
test@test:~$ mkdir demo
test@test:~$ ls -d demo &> null && echo exist || echo non-exist
exist