簡體   English   中英

當我們想運行一個可執行的c ++文件時,為什么需要在它前面加上“ ./”?

[英]Why do we need “./” in front of an excutable c++ file when we want to run it?

假設我有一個名為lencode的可執行C ++程序,並且我想使用UUOC運行它。 我可以使用以下命令成功運行它:

cat file.txt | ./lencode

但是現在,由於某些要求,我希望我的命令行使用以下格式:

cat file.txt | lencode

我無法運行該程序。 我該如何實現?

之所以使用./前綴,是因為當前目錄(如快捷方式"."所指)不在$PATH環境變量中。

一個答案是,輸入"." 在您的$PATH環境中。

對於bash:

export PATH=$PATH:.

對於tcsh:

setenv PATH ${PATH}:.

要確定您的外殼:

echo $0

有關shell的更多信息:

man bash

要么

man tcsh

但是,這存在安全風險。 更好的方法(如Justin Rameriz的回答所述)是將包含lencode的目錄( /home/user/如果lencode位於/home/user/lencode )放在$PATH ,或將lencode移至$PATH目錄。

例如,如果您使用tcsh作為外殼程序:

mkdir $HOME/bin
cp lencode $HOME/bin
setenv PATH ${PATH}:$HOME/bin

要在下次登錄時保留此設置,應將其放置在$HOME/.tcshrc文件中:

setenv PATH ${PATH}:$HOME/bin

將lencode目錄添加到您的路徑,或將其移動到您路徑中的目錄。 您可能並不總是希望當前目錄位於您的路徑中。 也就是說,任何時候只要您的cwd中有一個文件恰好是命令名。

暫無
暫無

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

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