繁体   English   中英

当使用包含cd和echo的别名时,会出现一个箭头,但没有其他显示

[英]When using alias containing cd and echos, an arrow appear but nothing else

我做了一个很长的别名,但无法使用。 我把它放在〜/ .bash_profile中。 就这个:

alias venga='cd ~/Users/clem/Desktop/venga/ ; echo "Vous êtes dans le dossier venga de votre site web." ; echo " " ; echo "Pour ajouter un commit, utilisez :" ; echo "git commitcommit -am "Message du Commit" ; echo " " ; echo "Pour envoyer le dossier vers GitHub, utilisez :" ; echo "git push origin master" ; echo " " ; echo "Pour ajouter un fichier à git utilisez :" ; echo "git add nomdufichier.xx"'

这是输出:

$ venga
>

当我按下Enter键时,其他箭头也会显示在下方。 我不知道该怎么办。

由于以下内容中有未转义的引号,因此您的报价未公开:

echo "git commitcommit -am "Message du Commit" ;

>是继续提示,因为外壳程序正在等待您关闭引号。 您不需要别名即可看到这种情况:

$ echo "Hello
>
>
> world"
Hello


world
$

您可能打算拥有:

echo "git commit -am \"Message du Commit\""

... 要么 ...

echo 'git commit -am "Message du Commit"'

但是,在最好的情况下,在shell中引用是个雷区。

将多行输出到stdout的一种更干净的方法是带有以下文档的cat

 cat << END
 Hello
 "World"
 DONE

将此作为函数而不是别名编写:

venga() {
  cd /Users/clem/Desktop/venga/ || {
    echo "Impossible d'accéder au répertoire du site Web"
    return
  }
  echo 'Vous êtes dans le dossier venga de votre site web.'
  echo
  echo 'Pour ajouter un commit, utilisez :'
  echo 'git commitcommit -am "Message du Commit"'
  echo 
  echo 'Pour envoyer le dossier vers GitHub, utilisez :'
  echo 'git push origin master'
  echo
  echo 'Pour ajouter un fichier à git utilisez :'
  echo 'git add nomdufichier.xx'
}

允许错误处理,使代码更易于阅读-并消除引起别名表单麻烦的引号问题。

(我也将~/Users/clem/Desktop/venga/Users/clem/Desktop/venga ,因为前者正在寻找$HOME/Users/clem/Desktop/venga ,而您可能没有$HOME 下的 Users )。

您不匹配“。

我认为有罪的部分是:

echo "git commitcommit -am "Message du Commit"

这是固定版本:

alias venga='cd ~/Users/clem/Desktop/venga/ ; echo "Vous êtes dans le dossier venga de votre site web." ; echo " " ; echo "Pour ajouter un commit, utilisez :" ; echo "git commitcommit -am \\"Message du Commit\\"" ; echo " " ; echo "Pour envoyer le dossier vers GitHub, utilisez :" ; echo "git push origin master" ; echo " " ; echo "Pour ajouter un fichier à git utilisez :" ; echo "git add nomdufichier.xx"'

另外,最好将此说明放在一个单独的文件中,即cat ,而不要包含许多回声。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM