Macos bash脚本中的符号链接不是';行不通
我在Mac OS X上编写了一个bash脚本,它生成了一个符号链接,但是当我尝试打开我创建的符号链接时,它什么地方都没有出现,我得到了一个错误,它找不到原始的符号链接Macos bash脚本中的符号链接不是';行不通,macos,bash,unix,symlink,Macos,Bash,Unix,Symlink,我在Mac OS X上编写了一个bash脚本,它生成了一个符号链接,但是当我尝试打开我创建的符号链接时,它什么地方都没有出现,我得到了一个错误,它找不到原始的符号链接 OriginalPath="~/PathTo/bundle1.bundle" NewPath="/OtherPath/bundle1.bundle" sudo ln -s $OriginalPath $NewPath 我也试过: sudo ln -s ${OriginalPath} ${NewPath} 假设${Origina
OriginalPath="~/PathTo/bundle1.bundle"
NewPath="/OtherPath/bundle1.bundle"
sudo ln -s $OriginalPath $NewPath
我也试过:
sudo ln -s ${OriginalPath} ${NewPath}
假设
${OriginalPath}
已经存在(如果不存在,嘿,那就是你的问题):
我要看的第一件事是看瓷砖扩展是否是问题所在。将OriginalPath
更改为完整路径名(例如,/Users/jpc/PathTo/bundle1.bundle
)。如果这解决了问题,那么要么继续,要么了解如何在shell中打开tilde扩展,或者使用环境变量${HOME}
而不是tilde扩展
无论如何,最好不要在shell脚本中使用tilde扩展,因为您可能无法确保所有运行脚本的用户都将其打开。
ln
将重定向设置为您所提供的重定向,因此它将根据链接的位置进行解释。实际上,我不能100%确定链接将如何处理~
,但我不相信bash会在引号中对其进行扩展,而且由于它是bash扩展,而不是一般的文件系统扩展,我怀疑重定向将指向一个名为~
的实际目录,该目录可能不存在。要么找出相对路径,要么将其展开为绝对路径