【问题标题】:Bash: error with cd and path variablesBash:cd 和路径变量出错
【发布时间】:2014-07-09 17:24:16
【问题描述】:

这里是有问题的代码:

path_prefix='opt/copyright_service/gitHub'
while read line
do
    user=$line
    echo $user
    while read line
    do
        repoName=$line

        path="/$path_prefix/$user"

        echo $path

        cd $path
    done < $2
done < $1

输出是:

username
/opt/copyright_service/gitHub/username
: No such file or directoryopyright_service/gitHub/username

为什么无法识别 cd 命令中的完整路径?在我添加用户功能之前,我让它从文件中读取存储库名称,并且它没有问题地做到这一点,但现在我同时拥有它,它不起作用。

它正在读取的文件内容是“用户名”

我尝试了许多连接 $path 的方法,通过在调用 cd 时指定路径前缀,通过在 cd 命令中连接 $path_prefix 和 $user(cd /$path_prefix/$user)

有什么想法吗?

【问题讨论】:

  • 您的脚本在问题中不完整。
  • 我认为所有需要的信息都在那里,但我添加了循环的结尾,因为中间的过程对于这个问题来说是微不足道的。
  • @Bushmills 你是什么意思?他们读取两个单独的文件,并将它们存储在两个单独的变量中。
  • bash -ex script.sh 运行它并向我们展示你得到了什么。
  • 而不是 echo $path,放在那里 hd

标签: bash variables github path cd


【解决方案1】:

大猜测:您的脚本不是 UNIX 格式。尝试使用dos2unix,或者使用可以很好地转换它的编辑器。使用sed -i -e 's|\r||' your_script.sh 也可以。

如果不是,可能是输入文件不是。

【讨论】:

  • 我尝试使用正确的文件名运行您提供的命令,但没有成功。
  • @user1762196 你处理的文件怎么样。他们在检查吗?
  • 这就是问题所在,我将文本文件从我的 windows 机器直接传输到我的服务器,但现在它确实可以工作了。
猜你喜欢
  • 1970-01-01
  • 2018-09-10
  • 2020-10-13
  • 2011-08-25
  • 1970-01-01
  • 2015-02-16
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
相关资源
最近更新 更多