我在脚本中使用 li.sh 创建了一个文件
#!/bin/env bash
read -p 'What is your name' name
echo $name
当我尝试使用命令
./li.sh
执行时,我收到了权限被拒绝的错误,但是当我使用命令bash li.sh
执行时,它执行时没有任何错误。使用 bash li.sh
运行是否安全?
我想知道 ./li.sh 和 bash li.sh 之间的区别。
我认为你无法通过./li.sh运行shell脚本的原因是你没有将文件权限设置为可执行
你可以看看这个 https://www.redhat.com/en/blog/linux-file-permissions-explained
tldr;您可以运行 sudo chmod +x li.sh 然后继续继续 ./li.sh
假设当您运行 bash li.sh 和 ./li.sh 时位于同一目录中,它应该以相同的方式工作。当您指定 bash li.sh 时,它首先运行 bash 并执行该文件,而当您运行 ./li.sh 时,它会读取该文件,看到有 #!符号 ,它将运行 /bin/env bash ,然后它将继续脚本