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

Create bash script with various alias?

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

我在脚本中得到了这个 运行s 完美,打印回声和除别名之外的所有内容。现在,如果我只是在脚本中执行相同的别名行,它会完美地创建别名。

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

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

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

#!/bin/bash

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

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

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

source script.sh

. script.sh

从您在 jayant answer 中的评论来看,您似乎在执行函数时感到困惑。举个例子:

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!"

现在当你 source . file_with_alias.sh 函数将不会被执行,只会生成别名。您将需要执行别名 do_this 或调用该函数才能正常工作。

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