单引号是同样的情况
can you tell me why? mail

不能解析就绕呗,所以就想到用一个 bash wrapper来处理,再传给 expect
用 Bash字符串替换

在Mac下搭建Apache服务器

Apache作为最流行的Web服务器端软件之一,它的优点与地位不言而喻。下面介绍下在Mac下搭建Apache服务器的步骤:

(1)”前往” –>”个人”“

图片 1

(2)在你的个人目录下新建一个文件夹,改名为“Sites”(改完后可见到文件夹中有个指南针的图标)。注意要放在个人用户的文件夹下,因为它和桌面、文稿等文件夹一样是你私人的文件夹,这个文件夹用来专门给外部网络访问的。

图片 2

(3)打开终端,切换到apache2的目录,再输入ls可以看到下面有一个httpd.conf文件,接下来我们要对该文件进行更改。

图片 3

(4)先备份一份该文件,防止之后的步骤出错该坏了,还可以拿这个副本来用。(输入密码时,终端不会显示任何字母之类,直接输入完按回车即可)

图片 4

再输入ls,就可以看到副本 http.conf.bak

(5)输入以下指令,就可以开始编辑这个httpd.conf文件了,在里面配置服务器。

图片 5

(如果在此时看到”Swap file “.httpd.conf.swp” already
exists!”,则输入”E”按回车,就可继续编辑)

图片 6

(6)输入 “/DocumentRoot” 后按回车 (/
是一个查找指令,表示我们现在找到DocumentRoot在哪,然后后可以修改它)。

图片 7

(7)先按
“i”,进入编辑模式;接着将下面两个”/Library/WebServer/Documents”都改为开始创建的那个Sites文件夹的路径(注意下面的”yons”是我的用户名,你应该改为自己的用户名。或者放一个文件到那个Sites文件夹中,然后可以复制其路径,这样更保险点不怕输错)。

图片 8

改成这样:
图片 9

(8)接着在刚刚修改的地方下面,找到”Options”和”FollowSysLinks”,并在中间插入”Indexes”。(如果mac没升级到10.10则不需要操作这个)。改完后按”esc”退出编辑状态,”–
INSERT –”会消失。

图片 10

(9)输入”/php”来查找php内容:
图片 11

(10)找到这一行,先按数字’0’,这样光标会移到行首;再按字母’x’,此时前面的注释’#’就没有了。

图片 12

(11)如图的效果。此时可以输入”:wq”保存修改后退出了。(如果觉得修改出错了,可以输入”:q”不保存修改直接退出,再重新来过)。

图片 13

(12)切换到 etc 目录,拷贝相关文件

图片 14

(13)输入”ls”可以看到当前目录有这两个东西:

图片 15

(14)输入以下指令,重启Apache即可使用。(忽略”AH00558….”)

图片 16

(15)此时就大功告成了。放在Sites的文件,就可以在浏览器中输入”127.0.0.1”或”localhost”访问到,或者被其他电脑上的浏览器输入你的IP地址访问到。

图片 17

本文永久更新链接地址:

http://www.bkjia.com/Linux/1115907.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linux/1115907.htmlTechArticle在Mac下搭建Apache服务器
Apache作为最流行的Web服务器端软件之一,它的优点与地位不言而喻。下面介绍下在Mac下搭建Apache服务器的步骤:
(…

现在可以
putF \$downloads/google.dmg desktop
把/home/$USER/Downloads 底下的 google.dmg 文件传到 Mac 的桌面
getF \$desktop/bt2_bf_PE.fq \$desktop/../QTL
把 Mac 桌面的bt2_bf_PE.fq文件传到服务的和桌面同级的 QTL 文件

#!/usr/bin/expect
#_putF.expect
#定义变量
set host xxxxxxx@00.000.00.00
set fromWhere [lindex $argv 0]
set toWhere [lindex $argv 1]
set desktop "/Users/ruili/Desktop/"
set downloads "/Users/ruili/Downloads/"
set home "/Users/ruili/"
#为单特殊目录替换
if { $toWhere == "desktop" } { 
    set toWhere "/Users/ruili/Desktop/"
} elseif { $toWhere == "downloads" } { 
    set toWhere "/Users/ruili/Downloads/"
} elseif { $toWhere == "desk" } { 
    set toWhere "/Users/ruili/YunPan/DeskFolder/"
} else {
    set toWhere $toWhere
}
#执行
spawn scp -r -p "$fromWhere" "$host:$toWhere"
expect "assword:"
send "wwlcr\r"
interact

下面这个是放在服务器端的,用于把file/folder 传到 Mac


经常需要把服务器的某些文件传到 Mac,或者获取 Mac
的一些文件到服务器。尽管有很多命令scp, ftp,
rsync都可以,霸特每次都有敲好长的命令,好烦,而且还要输入密码。所以想着
wrap 到 expect 脚本这样密码什么的都不用输入了。

下面的是 putF (pushF) ;把文件从服务器推到 Mac 端

Bash wrapper

#!/usr/bin/expect
#file: _getF.expect
# 和 Bash 的变量一样
# 定义时不加$,用的时候加
set host xxxx@00.000.00.00
set fromWhere [lindex $argv 0]
set toWhere [lindex $argv 1]
#服务器端目录变量
if { $toWhere == "desktop" } { 
    set toWhere "/home/rayleo/Desktop/"
} elseif { $toWhere == "downloads" } { 
    set toWhere "/home/rayleo/Downloads/"
} elseif { $toWhere == "home" } { 
    set toWhere "/home/rayleo/"
} else {
    set toWhere $toWhere
}
spawn scp -r -p "$host:$fromWhere" "$toWhere"
expect "assword:"
send "wwlcr\r"
interact
#!/bin/bash
#file: putF.bash
fromWhere=$1
toWhere=$2
home=/Users/ruili
desktop=/Users/ruili/Desktop
downloads=/Users/ruili/Downloads
desk=/Users/ruili/YunPan/DeskFolder
toWhere=${toWhere//\$desktop/$desktop}
toWhere=${toWhere//\$desk/$desk}
toWhere=${toWhere//\$downloads/$downloads}
toWhere=${toWhere//\$home/$home}

lhome=/home/rayleo
ldesktop=/home/rayleo/Desktop
ldownloads=/home/rayleo/Downloads
fromWhere=${fromWhere//\$desktop/$ldesktop}
fromWhere=${fromWhere//\$downloads/$ldownloads}
fromWhere=${fromWhere//\$home/$lhome}

/usr/bin/expect $HOME/Bin/bin/_putF $fromWhere $toWhere

本来想服务器端和本地的一些常用变量可以用变量代替,
为了不被 Bash 在命令行解析,需要把\(放在单引号或者`\`转意
但是传进来的变量无法被再次解析,I haven’t figure out why yet 例如 putF
\$desktop/lensid/conf.mout desktop > 把服务器端桌面的
lensid/conf.mout 文件 传到自己的 Mac桌面 > 传进来的\)desktop
就无法解析了

#!/bin/bash
#file: getF.bash
#获取参数
fromWhere=$1
toWhere=$2
#解析Mac变量
home=/Users/ruili
desktop=/Users/ruili/Desktop
downloads=/Users/ruili/Downloads
desk=/Users/ruili/YunPan/DeskFolder
fromWhere=${fromWhere//\$desktop/$desktop}
fromWhere=${fromWhere//\$desk/$desk}
fromWhere=${fromWhere//\$downloads/$downloads}
fromWhere=${fromWhere//\$home/$home}
# 服务器本地变量
lhome=/home/rayleo
ldesktop=/home/rayleo/Desktop
ldownloads=/home/rayleo/Downloads
toWhere=${toWhere//\$desktop/$ldesktop}
toWhere=${toWhere//\$downloads/$ldownloads}
toWhere=${toWhere//\$home/$lhome}
#传给 expect
/usr/bin/expect $HOME/Bin/bin/_getF "$fromWhere" $toWhere
admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注