您最喜爱的技术社区。浏览所有集体
提出问题,找到答案,并与团队堆栈溢出协作。
提出问题,找到答案,并与团队堆栈溢出协作。探索团队
找到集中、可信的内容,围绕您最常用的技术进行协作。
团队
工作问答
在一个结构化且易于搜索的位置内连接和共享知识。
尽早访问并查看新功能的预览。
下面是我正在编写的bash脚本:
dir=“~/path/to/$1/文件夹”如果[-d“$dir”];然后#做一些事情其他的echo“目录$dir不存在”;出口1fi(菲涅耳)
当我从终端运行它时:
> ./myscript.sh第123页目录~/path/to/123/folder不存在
但那个文件夹显然存在。这正常工作:
>ls~/path/to/123/文件夹
我做错了什么?
问题是bash在替换shell参数之前执行波浪线展开,所以在替换之后~/path/to/文件夹对于$目录,它不会尝试扩展~,因此它查找一个按字面意思命名的目录,其中包含波浪号,但该波浪号当然不存在。请参见bash手册的第3.5节有关bash扩展的更详细解释,请参阅。
~/path/to/文件夹
$目录
~
尝试:
dir=“$HOME/path/to/$1/folder”
提醒:堆栈溢出上不允许使用人工智能工具生成的答案。了解更多信息
必需,但从未显示
Required, but never shown
单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.