我对bash相当陌生,所以我不知道这个问题出现在哪里。但是,我有这个脚本,应该只更改cd,下载tar文件并将其解压缩。我正在从应用此命令/home/
#!/bin/bash
`cd /usr/local/src`
`wget http://nginx.org/download/nginx-1.6.2.tar.gz -O nginx-1.6.2.tar.gz`
`tar -xzf nginx-1.6.2.tar.gz`
因此,此下载tar文件并解压缩到主目录中,而不是 /usr/local/src
我已经读过,这可能是cd
命令中的问题,但是我不知道该如何解决。
编辑后,您的脚本现在显示您正在运行
#!/bin/bash
`cd /usr/local/src`
`wget http://nginx.org/download/nginx-1.6.2.tar.gz -O nginx-1.6.2.tar.gz`
`tar -xzf nginx-1.6.2.tar.gz`
反引号使每个命令都在子shell中运行;反之亦然。每个子shell的输出将被读取,字符串分割并作为第二个命令运行。
另外,由于cd
处于子外壳中,因此其效果不会延续到主外壳中。
因此:删除反引号(并确保脚本在cd
失败时退出;我在这里用-e
标志执行此操作)。您应该只在运行:
#!/bin/bash -e
cd /usr/local/src
wget http://nginx.org/download/nginx-1.6.2.tar.gz -O nginx-1.6.2.tar.gz
tar -xzf nginx-1.6.2.tar.gz
...这就是说:您的命令不得以`字符开头和结尾。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句