簡體   English   中英

將*作為命令行參數傳遞

[英]Passing * as a command line argument

我編寫了一個C程序,通過將表達式作為命令行參數傳遞來評估反向修飾符號,但是當我傳遞*(用於乘法)時,它將傳遞該文件夾中的所有文件名。

例如我通過了:

./rpn 10 20 30 + *

當我打印所有參數時,

 10
 20
 30
 +
 gcd
 gcd.c
 gcd.c~
 rpn
 rpn.c
 rpn.c~
 swapmacro
 swapmacro.c argc :12

這不是C問題。 您正在使用Bash(或某些等效的Shell),其中*會自動展開* (在到達程序附近的任何位置之前)。 您需要執行以下操作:

./rpn 10 20 30 + "*"

您需要對*進行轉義,例如通過像"*"一樣將其引號或通過像\\*那樣轉義它

*的擴展由外殼程序完成(在啟動程序之前)。 閱讀例如《 高級Bash腳本指南》

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM