Linux與命令列基礎

$ X=1
$ bash -c 'echo "[$X]"'
$ export X
$ bash -c 'echo "[$X]"'

依序執行上面的指令時,兩個 bash -c 的輸出組合是下列何者?

  1. A[] 與 [1]
  2. B[1] 與 [1]
  3. C[] 與 []
查看答案與解析

正確答案:A. [] 與 [1]

只以「X=1」指定的變數是 shell 變數,只能在該 shell 中使用,不會傳給它啟動的子行程(這裡是新的 bash)。加上 export 後會成為環境變數,之後啟動的子行程會繼承它的值。因此第1個是 [],第2個是 [1]。因為用單引號括起來,$X 不是在父 shell,而是在子 bash 中展開。

  • A. 正確。在 export 之前,X 不會傳給子行程。
  • B. 只做了指定的 shell 變數不會被子行程繼承。
  • C. 在 export 之後啟動的子行程會繼承 X 的值。
練習這個領域 前往領域頁面

Linux與命令列基礎的其他題目

  1. Linux 的套件管理系統(Debian 系的 apt、Red Hat 系的 dnf 等)的主要功能是下列何者?
  2. 在使用 systemd 的 Linux 上,對服務 license.service 執行「systemctl start license.service」與「systemctl enable license.service」的差異是下列何者?
  3. 在 cron 中登錄了「30 2 * * 1 /home/alice/backup.sh」。backup.sh 執行的時間是下列何者?
  4. Linux 伺服器出現「磁碟空間不足」的警告。查詢各檔案系統的使用量與剩餘容量的指令,以及加總查詢目錄中檔案所用容量的指令,下列哪一個組合正確?
  5. 在自己的 PC 上用 ssh-keygen 建立公開金鑰認證的金鑰對,想不用密碼就以 ssh 連線到伺服器 server1。金鑰的放置方式何者正確?