iMa*_*wCM 1 unix bash terminal macros
我对bash和UNIX命令以及终端应用程序非常不错,但我想知道,有没有办法制作一个"宏"(也许这是错误的词!)来自动执行某些任务?
例如,要进入我当前的项目目录,我输入:
$ cd ~/Documents/College/F13/CS362/lab3/os-lab-3
Run Code Online (Sandbox Code Playgroud)
然后我马上做
$ hg pull
Run Code Online (Sandbox Code Playgroud)
(密码)
然后
$ hg update
Run Code Online (Sandbox Code Playgroud)
那么有没有办法甚至自动化CD调用的第一步?我以前从未尝试过这样的事情,不确定我的目标是否可行.
额外奖励:有没有办法在提示时让宏输入我的密码?安全/隐私在这里并不是真正的问题,在回购中没有隐藏的热核代码.
小智 10
通常在此上下文中使用的名称(bash中的宏)是shell脚本.要自动发布帖子中的命令,您需要创建一个名为'myscript.sh'的文件,其中包含以下内容:
#!/bin/bash
cd ~/Documents/College/F13/CS362/lab3/os-lab-3
hg pull
hg update
Run Code Online (Sandbox Code Playgroud)
脚本的第一行是hashbang.这是一个特殊的注释行,表示应该使用指定的程序执行文件.在这种情况下猛击.
要运行该脚本,请首先通过运行以下命令确保它是可执行的:
chmod +x myscript.sh
Run Code Online (Sandbox Code Playgroud)
在终端窗口中,只需通过指定脚本的路径来运行脚本:
./myscript.sh
Run Code Online (Sandbox Code Playgroud)
不要把密码放入shell脚本中!这是一个坏习惯.对于使用Mercurial进行身份验证,ssh密钥对是最佳方法.ssh密钥可以加载到OSX的钥匙串中,因此在运行脚本时不必输入任何内容.您还需要将ssh密钥对的公共部分添加到远程Mercurial存储库上的授权主机列表中.