linux - 运行第一个 shellscript 时出现问题

标签 linux bash shell scripting

我正在尝试在 bash 中创建我的第一个 shell 脚本。我已经创建了代码,并设法将脚本保存在我的主目录中,但它无法运行。首先,我尝试从主目录运行它:./testscript.sh,并以“权限被拒绝”作为响应,然后我尝试sudo ./testscript.sh,然后“找不到命令”。

这是我的脚本:

#!/bin/bash  

mkdir -p/home/filer
touch /home/filer/fil1
touch /home/filer/fil2
touch /home/filer/fil3
tar-zcvf file.tar.gz /home/filer

所以我尝试创建一个脚本,在我的主目录中创建一个名为“filer”的目录,使用 touch 在“filer”目录中创建 3 个单独的文件,然后从整个“filer”目录中创建一个 tar.archive。我认为脚本是正确的,我可以用手运行脚本。

最佳答案

除了几个拼写错误(mkdir -p/path -> mkdir -p/pathtar-zcvf ... -> tar -zcvf ...)之外,您应该使用 $HOME 环境变量引用您的主目录。 /home/filer 是绝对目录路径,我假设它不是您的实际主目录。

#!/bin/bash

mkdir -p $HOME/filer
touch $HOME/filer/fil1
touch $HOME/filer/fil2
touch $HOME/filer/fil3
tar -zcvf file.tar.gz $HOME/filer

您可以将脚本 ./testscript.sh 执行为 bash testscript.sh./testscript.sh

在第二种情况下,脚本需要具有适当的可执行权限。 chmod +x ./testscript.sh 赋予其完全可执行权限。

关于linux - 运行第一个 shellscript 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55812813/

相关文章:

linux - 在 Mac OS X 的命令行参数中,vmd 不使用文件名打开

apache - 如何获取 Shell 脚本来更改文件权限?

mysql连接配置文件配置文件

c - 创建共享对象时不能使用针对 .data 的重定位 R_X86_64_32S(64 位 NASM + gcc)

bash - 有没有办法将命令输出的连续流发送到远程监听器

bash - 如何确定 gif 是否为动画?

git - 在 shell 脚本中检查 Bitbucket 登录凭据

shell - 如何使用 zsh 使向上和向下箭头键显示脚本中的历史条目?

python - 在 Linux 上无限期运行脚本的最可靠方法

python - 如何让 pip 再次工作?