Linux與命令列基礎
$ cat s.sh
#!/bin/bash
echo "$# $1"
$ ./s.sh a "b c" d如上所示,加上引數執行腳本 s.sh 時,輸出是下列何者?
- A3 ./s.sh
- B3 a
- C4 a
查看答案與解析
正確答案:B. 3 a
在腳本中,$1、$2… 表示第1個、第2個引數,$# 表示引數的個數,$0 表示腳本本身的名稱。"b c" 用雙引號括起來,所以成為含有空白的一個引數,引數是 a、b c、d 共3個。因此 $# 為3,$1 為 a,輸出為 3 a。要把所有引數保持原本的分隔傳給其他指令時,寫作 "$@"。
- A. 腳本的名稱是 $0,$1 是第1個引數 a。
- B. 正確。引數是 a、b c、d 共3個,第1個是 a。
- C. 用引號括起來的 "b c" 是一個引數,所以引數個數不是4而是3。