【问题标题】:How to set up shell alias so I can change directories如何设置 shell 别名以便我可以更改目录
【发布时间】:2014-09-13 23:12:20
【问题描述】:

我在我的工作流程中使用 bower 和 grunt,并且我想在安装 grunt 的同时安装 bower 并删除我所有的 bower 依赖项。所以我创建了一个 package.json 文件,该文件在 postinstall 上附加了一个脚本,我还将我的 github 项目 repo 传递给它,并将我的 post_install.sh 放到 /root/bin 中。

{ // snippet of package.json
    ...
    "scripts": {
       "postinstall": "bin\\post_install.sh https://github.com/blah/blah.git
    },
    ...
}

所以运行 npm install 会运行 post_install.sh,它会运行

#!/bin/bash
node_modules/.bin/bower install
grunt setup
git init
git add .
git commit -m "Initial commit of project artifacts"
git remote add origin $1
git push -u origin master

这仅在我将 git bash 设置为在我的项目目录中打开时才有效。所以我一直在试图弄清楚如何使用别名将目录从 git bash 在 /htdocs 打开的位置切换到 /htdocs/myproject 。我阅读了我认为的如何设置它,但我不知道如何调用这个文件......顺便还尝试将它放在另一个 .sh 文件中,看看是否有效。

#!.bashrc
alias projDir='cd /onloadsolutions'

/bin/.bashrc 中的别名在“grunt setup”上方时不会在我的 post_install.sh 中执行,我做错了什么?

将其放入 post_install.sh

echo "script running has basename `basename $0`, dirname `dirname $0`"
echo "present working directory is `pwd`"

给出的基本名称是 D:/htdocs/onloadsolutions/bin/post_install.sh,但我目前的工作目录是 /d/htdocs,当 bower 和 git 命令运行时,它们会在错误的目录中执行。

【问题讨论】:

    标签: node.js git bash shell gruntjs


    【解决方案1】:

    不是 100% 确定你的意思,但我猜当你打开 bash 时你想要

    1. 能够输入命令将您带到您的项目
    2. 然后输入 npm install 并让它拉下所有依赖项

    尝试编辑您的 .bashrc 文件(这应该在您的主目录中,而不是在 /bin 文件夹中)以访问它,您可以使用类似

    nano ~/.bashrc
    

    (~/ 是您的主目录的快捷方式)

    并在其中查找任何现有的别名命令或将您的命令添加到底部。

    然后在打开另一个 bash 会话后(.bashrc 仅在您第一次启动终端时运行)您应该能够通过键入“别名”来查看当前别名

    您可以通过在控制台中输入“projDir”来启动上面提到的别名。在别名中添加完整路径会更好,即

    alias projDir='cd /var/www/onloadsolutions'
    

    然后你可以从任何地方调用它。否则,您最终可能会进入与预期不同的文件夹。

    更新 请参阅下面的 cmets。

    cd $2 放在 post_install.sh 文件的倒数第二行,并在调用它的 package.json 文件中添加第二个参数。

    【讨论】:

    • 您好,感谢您的回复。没错,我想导航到我的目录,输入 npm install,grunt 将运行并拉下所有 grunt 和 bower 依赖项,然后运行安装程序,最后运行我的 git 命令。因此,在 grunt 的安装后它会自动调用 post_install.sh,然后在其中运行命令,所有这些命令都在错误的文件夹中,因此需要在运行这些行之前更改文件夹,但我当时无法控制输入 projDir .我已将 .bashrc 放入 /root,那么我会在 post_install.sh 中输入 nano ~/.bashrc 吗?我更改了别名的路径。
    • 啊我想我明白了,也许你只需要把 cd /onloadsolutions 放在你的 post_install.sh 的第二行上面?
    • 或者你可以把cd $2放在最上面,然后用正确的目录作为第二个参数调用post_install.sh
    • 太好了,我现在在工作目录中。这在我的 package.js 文件中意味着额外的措辞,但效果很好。这应该张贴在您的答案中吗?然后我可以检查,而不仅仅是投票赞成您的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2015-06-28
    • 2021-04-08
    • 2013-05-15
    相关资源
    最近更新 更多