Vla*_*lov 2 command-line bash scripts
我正在编写一个 bash 脚本来自动化几个操作:
#!/bin/bash
echo "Hello, World"
NAME="${1}"
PATH="${2}"
echo $NAME
echo $PATH
eval "ls"
Run Code Online (Sandbox Code Playgroud)
我将调用ls, ffmpeg
和许多其他命令。
但是运行我的脚本给了我以下错误:
/var/www/html# ./life.sh test midhand.mp4
+ ./life.sh test midhand.mp4
Hello, World
test
midhand.mp4
./life.sh: line 9: ls: command not found
Run Code Online (Sandbox Code Playgroud)
怎么来的?为什么没有找到?也许我应该导入一个带有脚本的目录?
该变量PATH
是一个特殊的 shell 变量。它定义了可以找到可执行文件/命令的目录列表。
在 行中PATH="${2}"
,您清除了 的默认值,PATH
现在 shell 不知道在哪里可以找到该ls
命令。例如,ls
可以在目录中找到/bin
,但是您修改PATH
为具有值midhand.mp4
(第二个参数),特别PATH
是不包含/bin
因此您的shell 找不到该ls
命令。
尝试这个:
#!/bin/bash
echo "Hello, World"
the_name="${1}"
the_path="${2}"
echo "PATH is '$PATH'"
echo $the_name
echo $the_path
eval "ls"
Run Code Online (Sandbox Code Playgroud)
笔记。您可以将最后一行从 更改eval "ls"
为 just ls
。
您可以运行man bash
以获取更多信息。
归档时间: |
|
查看次数: |
6627 次 |
最近记录: |