为了账号安全,请及时绑定邮箱和手机立即绑定

“〜/ Desktop / test.txt:没有这样的文件或目录”

“〜/ Desktop / test.txt:没有这样的文件或目录”

Go
qq_笑_17 2019-12-02 08:04:21
“〜/ Desktop / test.txt:没有这样的文件或目录”我写过这个剧本:#!/bin/bashfile="~/Desktop/test.txt"echo "TESTING" > $file该脚本不起作用; 它给了我这个错误:./tester.sh: line 4: ~/Desktop/test.txt: No such file or directory我究竟做错了什么?
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

尝试更换~$HOME。仅在波浪线未引用时才会发生Tilde扩展。见info "(bash) Tilde Expansion"

你也可以file=~/Desktop不引用它,但如果你用它中的字段分隔符替换它的一部分,那么它将会中断。引用变量的值可能是养成习惯的好事。引用变量file=~/"Desktop"也会起作用,但我觉得这很难看。

$HOME在可能的情况下,首选的另一个原因是:波浪扩展只发生在单词的开头。因此,command --option=~/foo只有在command自身代价扩展时才会起作用,这将随命令而变化,同时command --option="$HOME/foo"始终有效。



查看完整回答
反对 回复 2019-12-03
?
四季花海

TA贡献1811条经验 获得超5个赞

仅供参考,您还可以使用eval

eval "echo "TESTING" > $file"

eval作为参数取指令,它会导致壳做波浪线扩展


查看完整回答
反对 回复 2019-12-03
  • 2 回答
  • 0 关注
  • 740 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信