shell script - Linux

Table of Contents

大家好~我是shell script 新手

最近寫一個小程式,是尋找有沒有目錄檔,可是執行都錯誤,不知道哪裡有錯

有網站在教語法這方面嗎? 謝謝

我在 /建一個目錄program 並在目錄下寫一個sh檔,是找有沒有var目錄,有的話就

echo,但我執行程式 sh find.sh 產生以下問題,不知道是甚麼問題哪裡寫錯!

find.sh: line 11: if[-e /var]: 沒有此一檔案或目錄
find.sh: line 13: syntax error near unexpected token `then'
find.sh: line 13: `then'

請問要怎麼直接 打/program/find.sh 就可以執行程式,不用再切換到program檔

再打sh find.sh 謝謝


#!/bin/bash
#program:
#use rsync copy webmailinfomation
#history:
#2017/09/21
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

File="/var"

if[-e $File]

then

echo $File

else

echo "hi"

fi



--

All Comments

Isla avatarIsla2017-09-22
教學網站可以參考[鳥哥的Linux私房菜]
Tom avatarTom2017-09-23
你錯誤的原因是沒有空格,把錯誤那行貼到google search
Isla avatarIsla2017-09-27
Andrew avatarAndrew2017-10-01
不是換行嗎?then不用換行
Xanthe avatarXanthe2017-10-02
鳥哥看一看吧...
Ursula avatarUrsula2017-10-07
是哪裡沒空格,我有試過then不換行還是錯@@
Rae avatarRae2017-10-09
括號裡面要空一格
if 後面也要要空一格。
Bethany avatarBethany2017-10-12
用 chmod a+x program.sh 把執行權限打開
Hamiltion avatarHamiltion2017-10-14
所以你到底是用 sh 還是 bash?
Olive avatarOlive2017-10-16
你的script #!/bin/bash 然後用 sh 當 interpreter?
Mary avatarMary2017-10-20
我是照鳥哥打的@_@ if 判斷式是照其他網頁
Linda avatarLinda2017-10-24
如果是redhat系列,sh是link到bash沒問題,我也覺得是
空格問題
Carolina Franco avatarCarolina Franco2017-10-26
空格問題,因為 if [ -e "xxxx" 是傳給 if 三個參數
如果是 if[-e $file 那就是 if[-e 是執行檔,$file是參數
Skylar Davis avatarSkylar Davis2017-10-27
其實是有一個 [ 執行檔的
Anthony avatarAnthony2017-11-02
目前用 bash 的 [ 是內建命令了,早期 sh 年代才會
呼叫到外部的 [ 那個程式檔案
Olive avatarOlive2017-11-06
先把格式打對來
Franklin avatarFranklin2017-11-06
你需要是 ... --delete /a/. /b 這個語法吧,不是用 *
Harry avatarHarry2017-11-10
* 只是 match a 該目錄內單層而已
Joseph avatarJoseph2017-11-10
k大您好,我改好了~*跟 /.是差在哪邊呢?
Anthony avatarAnthony2017-11-11
你可以重新測試,在 rsync 前面命令多加一個 echo
可以看出萬用字元展開情況,就會知道原因了