作者gmotwm2001 (小马怪)
看板Linux
标题[问题] shell script
时间Thu Sep 21 20:27:42 2017
大家好~我是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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.238.53.62
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1505996864.A.050.html
1F:推 freemantw: 教学网站可以参考[鸟哥的Linux私房菜] 09/21 20:59
2F:→ freemantw: 你错误的原因是没有空格,把错误那行贴到google search 09/21 21:01
4F:推 filiaslayers: 不是换行吗?then不用换行 09/21 21:22
5F:推 shiyeh: 鸟哥看一看吧... 09/21 22:30
6F:→ gmotwm2001: 是哪里没空格,我有试过then不换行还是错@@ 09/21 22:40
7F:推 goldie: 括号里面要空一格 09/21 22:48
8F:→ goldie: if 後面也要要空一格。 09/21 22:48
9F:推 mars90226: 用 chmod a+x program.sh 把执行权限打开 09/21 23:32
10F:推 bluecadence: 所以你到底是用 sh 还是 bash? 09/21 23:47
11F:→ bluecadence: 你的script #!/bin/bash 然後用 sh 当 interpreter? 09/21 23:48
12F:→ gmotwm2001: 我是照鸟哥打的@_@ if 判断式是照其他网页 09/21 23:51
13F:推 patrick521: 如果是redhat系列,sh是link到bash没问题,我也觉得是 09/22 00:37
14F:→ patrick521: 空格问题 09/22 00:37
15F:推 dou0228: 空格问题,因为 if [ -e "xxxx" 是传给 if 三个参数 09/22 08:24
16F:→ dou0228: 如果是 if[-e $file 那就是 if[-e 是执行档,$file是参数 09/22 08:24
17F:→ dou0228: 其实是有一个 [ 执行档的 09/22 08:25
19F:→ kenduest: 目前用 bash 的 [ 是内建命令了,早期 sh 年代才会 09/22 09:33
20F:→ kenduest: 呼叫到外部的 [ 那个程式档案 09/22 09:33
21F:推 chang505: 先把格式打对来 09/22 09:57
刚刚修正空格後已经可以执行,想再请问我将echo $File改为同步备份指令如下
rsync -av --delete /a/* /b 将a资料夹底下的资料备份到b资料夹,可是a资料夹中的
资料删除後,b资料夹原本复制的资料也应该要删除掉,可是他没有删除,只有增加才会
备份,想请问指令是否有打错(我查网路是只要家delete就可以),谢谢!
b
※ 编辑: gmotwm2001 (140.117.166.187), 09/22/2017 10:28:30
22F:→ kenduest: 你需要是 ... --delete /a/. /b 这个语法吧,不是用 * 09/22 11:45
23F:→ kenduest: * 只是 match a 该目录内单层而已 09/22 11:46
24F:→ gmotwm2001: k大您好,我改好了~*跟 /.是差在哪边呢? 09/22 13:36
25F:→ kenduest: 你可以重新测试,在 rsync 前面命令多加一个 echo 09/22 16:26
26F:→ kenduest: 可以看出万用字元展开情况,就会知道原因了 09/22 16:26