在今天的課程中,我們被要求撰寫一個腳本,通過前處理器運行一個 C 檔案并將結果保存到另一個檔案中,條件如下:
- C 檔案名將保存在變數中
$NAMEFILE - 輸出應保存在檔案中
NAME
我的一位同學趕緊寫了以下代碼作為解決方案:
#!/bin/bash
gcc -E -o NAME $NAMEFILE
上面的代碼我都明白了,除了最后一部分$NAMEFILE寫了變數,看起來很棘手,為什么你可以簡單地將C檔案名存盤在那個變數中,甚至不宣告呢?GCC 手冊似乎沒有解釋這一點,所以我只想了解這背后的邏輯。
uj5u.com熱心網友回復:
根據我帖子評論部分提供的反饋,該$NAMEFILE變數是一個環境變數。有人建議我閱讀與環境變數相關的檔案,我將在接下來的幾個小時內閱讀。
我的問題解決了。
uj5u.com熱心網友回復:
您正在將 gcc 操作/功能與 shell 的行為混為一談。gcc 手冊不會說“將檔案名存盤在變數中”,因為這是運行 gcc 的一部分或環境。
在 Windows 中,它看起來像這樣:
gcc -E -o NAME %FILENAME%
你不會在 gcc 手冊中找到任何解釋。
shell (bash) 就像“Windows 資源管理器”。它是您用來向計算機 (OS) 發出指令的內容。而不是點擊你所做的檔案夾cd folder,而不是“雙擊”你輸入“./foo/command”或只是“gcc”。
所以只要記住這一點,你就會沒事的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/341786.html
標籤:猛击
