#!/bin/bash
echo "hello world"
$a='~'
$b='$a/nlu'
echo $b
Run Code Online (Sandbox Code Playgroud)
我有
./test.sh: line 3: =~: command not found
./test.sh: line 4: =$a/nlu: No such file or directory
Run Code Online (Sandbox Code Playgroud)
作为错误有什么问题?
改用这个:
#!/bin/bash
echo "hello world"
a='~'
b="$a/nlu"
echo $b
Run Code Online (Sandbox Code Playgroud)
不要$用于任务。
b='$a/nlu'-- 表达式$a不要用单引号扩展,为此使用双引号。
正如@steeldirver 所指出的那样,由于分配没有正确完成,然后尝试作为命令执行,./test.sh: line 4: =$a/nlu: No such file or directory因此$b扩展为空的结果。适用于完全相同。bash=$a/nlu./test.sh: line 3: =~: command not found
对于将来的错误,请使用shellcheck同名软件包或其在线版本。