Bash 執行「字串命令」的方法

Linux 的 Bash shell 裡面,若有一個字串需要執行,可以怎麼做呢?

Bash 執行「字串命令」的方法

Bash shell 要將此字串當 Shell 命令執行,可以有下述兩種作法:

  1. eval
  2. bash -c
    • If the -c option is present, then commands are read from the first non-option argument command_string.
    • If there are arguments after the command_string, the first argument is assigned to $0 and any remaining arguments are assigned to the positional parameters.
    • The assignment to $0 sets the name of the shell, which is used in warning and error messages.

分別測試作法:(執行結果都一樣)

  1. eval "cd /; ls" # 執行完,帳號會在 / 的路徑上
  2. bash -c "cd /; ls" # 執行完,帳號還是在原始位置
  3. source <(echo "cd /; ls") # 感謝 typebrook 提供的作法

關於「Tsung」

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
分類: My_Note-Unix,標籤: , , , , , , 。這篇內容的永久連結

在〈Bash 執行「字串命令」的方法〉中有 2 則留言

  1. typebrook表示:

    也可以用Process Substitution來做
    source <(echo "cd /; ls")

typebrook 發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料