㈠ shell判斷目錄是否存在
判斷表達式中直接用-d判斷即可,參考代碼如下:
myFolder=/home/test
if[-d$myFolder];then
echo"Folderexists!"
else
echo"Folderdoesn'texist!"
fi
Shell基本上是一個命令解釋專器,類似於DOS下的command。它接收屬用戶命令(如ls等),然後調用相應的應用程序。較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。
(1)shell是否是文件夾擴展閱讀:
shell文件描述符
-e 判斷對象是否存在
-d 判斷對象是否存在,並且為目錄
-f 判斷對象是否存在,並且為常規文件
-L 判斷對象是否存在,並且為符號鏈接
-h 判斷對象是否存在,並且為軟鏈接
-s 判斷對象是否存在,並且長度不為0
-r 判斷對象是否存在,並且可讀
-w 判斷對象是否存在,並且可寫
-x 判斷對象是否存在,並且可執行
㈡ shell腳本判斷是文件還是文件夾
那就寫兩個if判斷吧
if [ -f $FILE ]
if [ -d $FILE ]
㈢ shell腳本判斷文件夾下是否有文件
我們可復以通過判制斷文件夾中的文件的列表是否為空來判斷:
if[[-n$(ls)]];then
#Dosomethinghere
else
#Dosomethingelsehere
fi
㈣ shell判斷文件夾是否存在
Shell中的test命令用於檢查某個條件是否成立,它可以進行數值、字元和文件三個方面的測試,那麼如何使用shell來判斷文件夾是否存在呢?今天小編就就帶大家來看看吧。㈤ shell判斷文件夾內是否有文件
if [ `ls directory | wc` -eq 0 ]
then
echo "文件夾為空"
fi
#directory是要判斷的文件夾,'是ESC鍵下面那個鍵不是單引號,手機不好打
㈥ Shell腳本判斷是文件還是目錄怎麼寫
#!/bin/bash
if[-d$1]
then
echo"$1isadirectory."
exit
elif[-f$1]
then
echo-n"$1isafile,"
if[-L$1]
then
答echo"anditisalsoasymboliclink."
A=`ls-L$1`
if[-e$A]
then
echo"Symboliclinkexist."
else
echo"Symboliclinknotexist."
fi
exit
else
echo"butitisnotasymboliclink."
exit
fi
fi
㈦ shell腳本,判斷一個目錄內是文件還是子目錄
你能不能一次把問題提完整呢。
shell 沒有提供處理文件系統的底層功能。
可以使用重定向,在得到一行後就立刻匹配,完成後立刻退出。它不需要等到ls命令完成。可以操作目錄下存在大量文件的情況。
效率最快的是這個:
ls /opt -1F --sort=none | ( read LINE;echo "$LINE"| if grep -q "/$" ; then exit 0 ;else exit 1 ; fi ;)
這個命令返回0 表示/opt 目錄下存在目錄(不代表全部都是目錄,這條命令基於你在問題中的假設)。返回非0表示包含非目錄文件。
-1 表示ls 輸出一行個文件。
-F 表示輸出的每個文件後綴一個符號表示文件類型,文件夾的後綴為 /
--sort=none 表示按照磁碟存儲順序進行輸出,不進行排序。
|grep -q '/$' 表示 如果匹配到/ 結尾的行。
最近幾天你提的問題相當零散。都不知道你的思維對不對。
shell 本身就不是高效率的語言。想要高效率應該使用其他腳本語言,例如perl 。
㈧ linux shell程序,如何輸入一個文件名判斷它是文件夾還是文件
//是目錄不是文件夾
#! /bin/bash
# filename:FileType.sh
read -p "Please input the filename :" filename
fpath=$filename
if [ -d $fpath ];
then
echo "$fpath is a direstory.";
elif [ -e $fpath ];
then
echo "$fpath is a file.";
else
echo "$fpath is NOT a file or direstory.";
fi
㈨ shell 判斷文件夾是否存在
判斷一個文件夾是否存在可以使用[[命令(就是兩個[,[[在這里的確是一個命令,它比[的功能更強大),使用方法是
[[ -a dir_name ]] && echo "directory exists"
㈩ 什麼是shell命令windows系統也有shell命令嗎
Shell(也稱為殼層)在計算機科學中指「為用戶提供用戶界面」的軟體,通常指的是命令行界面的解析器。一般來說,這個詞是指操作系統中提供訪問內核所提供之服務的程序。Shell也用於泛指所有為用戶提供操作界面的程序,也就是程序和用戶交互的層面。因此與之相對的是內核(英語:Kernel),內核不提供和用戶的交互功能。
不過這個詞也拿來指應用軟體,或是任何在特定組件外圍的軟體,例如瀏覽器或電子郵件軟體是HTML排版引擎的Shell。Shell這個詞是來自於操作系統(內核)與用戶界面的外層界面。
通常將shell分為兩類:命令行與圖形界面。命令行殼層提供一個命令行界面(CLI);而圖形殼層提供一個圖形用戶界面(GUI)。
[Wikipedia:殼層]
==========================
虛擬終端機(英語:Terminal emulator)是在個人電腦上虛擬的一個終端以及為此目的而寫的軟體。虛擬終端的目的是達到個人電腦及其用戶能夠與大型計算機的連接。一般來說需要連接的大型計算機是IBM的大型計算機或者所謂的超小型計算機(過去往往是迪吉多的VAX)。
虛擬終端使得個人電腦的用戶可以直接使用他的個人電腦來與大型計算機聯系,而不必使用專門的終端。
通過虛擬終端的軟體虛擬終端還可以擴展大型計算機的標准終端的功能,通過虛擬終端不但可以將個人電腦上的數據傳遞給大型計算機,而且還可以將大型計算機的數據傳遞給個人電腦,並在個人電腦上繼續加工。
一般大型計算機的終端是字母式的輸入和輸出介面,因此一個虛擬終端至少需要一個能夠模擬這樣的字母式(比如ASCII)輸入和輸出介面的能力。最常見的平台是圖像式的用戶表面。要使得新的、圖像式的程序能夠使用老的字母式的或者沒有圖像式輸入和輸出能力的程序也需要虛擬終端。
現代的大型計算機也內部使用虛擬終端,這樣它們可以向老的、需要終端的程序假裝一個終端,而實際上它則將程序的顯示轉到顯卡上。比如Linux以及其它大多數基於個人電腦的類似Unix的操作系統假裝有六至十個這樣的「虛擬」的終端。
[Wikipedia:虛擬終端]
==========================
Windows命令提示符(cmd.exe)是Windows NT下的一個用於運行Windows控制台程序或某些DOS程序的殼層程序;或在Windows CE下只用於運行控制台程序的殼層程序。它被用於替代Windows 9x系統中所提供的COMMAND.COM和「MS-DOS提示符」。命令提示符的最初版本由Therese Stowell開發。
[Wikipedia:命令提示符]
==========================
PowerShell(包括Windows PowerShell和PowerShell Core)是微軟公司開發的任務自動化和配置管理框架,由.NET Framework和.NET Core是構建的命令行界面殼層相關腳本語言組成,最初僅Windows組件,後於2016年8月18日開源並跨平台支持。[3]
在PowerShell中,管理任務通常由cmdlets(發音為command-lets)執行,這是執行特定操作的專用.NET類。可以將cmdlet集合至腳本、可執行文件(一般是獨立應用程序)中,或通過常規.NET類(或WMI / COM對象)實例化。[4][5]通過訪問不同數據存儲中的數據由PowerShell運行,如資源管理器或注冊表。
[Wikipedia:Windows PowerShell]
==========================
Windows shell是Microsoft Windows操作系統的圖形用戶界面。Windows shell易於識別的元素包括桌面、任務欄、開始菜單、任務切換器和自動播放等特徵。在某些版本的Windows上,還包括Flip 3D和魅力(charms)等功能。在Windows 10中,Windows Shell Experience Host界面可以驅動視覺效果,如「開始」菜單,「操作中心」和「任務欄」、Task View/Timeline。另外,Windows shell還實現了一個shell命名空間,該命名空間使Windows上運行的計算機程序能夠通過shell對象架構訪問計算機的資源。「桌面」是層次結構的頂級對象,在它之下有一些存儲在磁碟上的文件和文件夾,以及一些內容為虛擬或動態創建的特殊文件夾,如垃圾箱、控制面板、我的計算機、我的網路位置等等。
基本上講,Shell是由文件夾組成的,文件夾是一個包含有子元素的容器,包括子文件夾,這些元素通常稱為文件夾項。根文件夾稱為『桌面』,其子項包括『我的計算機』,『網上鄰居』,『回收站』,和其他可能的項,所有這些文件夾的集合稱之為Shell的命名空間。文件夾實際上是一個Shell對象,它的行為被編碼成一個COM模塊,向Windows Shell暴露公共的介面。通過連接,文件夾可以告訴Shell怎樣設計它的內容,使用什麼樣的圖標顯示,採用什麼文字來描述。文件對象是一個包含在普通文件夾中的項—文件、記錄、內存塊、連接的設備等。『文件夾項』、『文件夾元素』和『文件對象』這些術語是等價的。任何文件夾的內容都是通過一個對象調用Shell viewer顯示在Windows explorer.exe中的。每一個文件夾都定義了他自己的Shell viewer對象,並且所有相關於這個用戶介面的任務都指派到這個對象上。
從概念上講,桌面是所有Windows Shell對象的父對象,即宿主對象。就實現方式而言,桌面是一個系統定義窗口類的特殊窗口(命名為#32769),並且是所有窗口的祖先窗口。那些導出應用的頂層窗口一般而言都是桌面的子窗口。[1]
主要的Windows Shell部件就是任務欄,它實際上就是由explorer.exe進程所擁有的一個窗口。當終止explorer.exe進程的時候,都將引起任務條的消失和重新顯現。每當任務欄重新顯現的時候,它注冊一個具有不同HWND的新窗口。任務條擁有「開始」按鈕的窗口,在托盤區域有時鍾和類似按鈕的控制項,表示正在運行的應用。任務條實際上與窗口一樣,可以在其上作任何窗口上可以做的操作如移動、隱藏和子類化等。
explorer.exe是一個扮演著系統外殼角色的應用程序。當說到外殼擴展的時候,就是由explorer.exe感知的、裝入的並最終執行的代碼塊。explorer.exe可以被看作為一個微型的窗口開發環境:它有自己的函數和對話框;允許寫特殊的與已存在的體系集成的應用程序;能包容應用和文檔。甚至可以解釋任何活動的腳本兼容語言的腳本(VBScript,JScript,Perl,等等)。採用COM介面和進程內伺服器(實質上的DLL)
在Win16環境中,與Shell唯一的通訊方式是通過動態數據交換(DDE)。
[Wikipedia:Windows Shell]