我想知道为什么我的简单脚本不起作用:
#!/usr/bin/env bash
user_variable='$1'
echo "export USER_VAR=$user_variable" > ~$user_variable/.filename
启动脚本时出现以下错误:
./script.sh admin: line 3: ~admin/.filename: No such file or directory
当然,〜admin的目录存在:
~ # cd ~admin
/share/homes/admin #
如果我直接在命令行中测试这种命令,它将起作用:
# echo "test" > ~admin/.filetest
#
那么,为什么我的echo命令在脚本文件中不起作用?
谢谢你。
来自bash(1)
:
扩展顺序为:大括号扩展,代字号扩展,参数,变量和算术扩展以及命令替换(以从左至右的方式完成),单词拆分和路径名扩展。
即,它会在变量扩展之前进行波浪号扩展,因此直到尝试并失败处理之后,它才会替换$user_variable
为$1
(我认为是“ admin
”),~
因为它正在寻找名为“ $user_variable
”的用户,而不是一个名为“ admin
”的用户。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句