使用各种别名创建bash脚本?

时间:2015-10-27 17:45:01

标签: bash alias

我正在创建一个脚本,运行时为其他文件夹中的各种脚本创建各种别名。 脚本和其他文件夹位于特定文件夹中,如图所示,但只有在我需要时它才能执行。 假设这只是在这台机器上执行,我不需要改变路径。

我在运行完美的脚本中得到了这个,打印了回显,但是没有创建别名。现在,如果我只是在脚本中执行相同的别名行,则可以完美地创建别名。

这个我正在创建的脚本是sh对这种情况有什么影响吗?

现在我只想使用别名,因为这个文件夹将留在那台机器上,我不会让其他人运行这些。

我想要的是能够而不是去文件夹并运行可执行文件我希望这个脚本创建别名,所以我可以通过像$~ zenmap这样的提示直接调用它们并运行它。

#!/bin/bash

alias zenmap="/home/user/Desktop/folder/nmap/zenmap/zenmap"
echo "zenmap imported !"

有关可能发生的事情的任何线索?

2 个答案:

答案 0 :(得分:3)

您应该source您的别名脚本而不是简单地运行它。即。

source script.sh

. script.sh

答案 1 :(得分:0)

从你在jayant回答中的评论来看,当函数执行时你似乎很困惑。举个例子:

file_with_alias.sh

alias do_this="do_some_function"
" sourcing the file will make the function available but not execute it!
source file_with_function.sh

" This will only create the alias but not execute it.
alias execute_script="./path/to/script_that_does_something.sh"

file_with_function.sh

do_some_function(){
  echo "look ma! i'm doing things!"
}

script_that_does_something.sh

echo "Doing something directly!"

现在,当您发送. file_with_alias.sh时,将不会执行该函数,只会生成别名。您需要执行别名do_this或调用函数才能使其工作。

$ source file_with_alias.sh
$ do_this
Look ma! I'm doing things!
$ execute_script
Doing something directly!