一千萬個為什麽

搜索

Bash采用其他語言的功能

這可能是一個愚蠢的問題,但這是我想知道的:是否可以定義Ruby/Python/Perl /等。在某個文件中運行,然後在Bash中獲取它(使其在當前shell中的任何位置都可用)?

目前,我通過創建執行該腳本的bash別名來“源”其他語言的腳本/函數......但我想知道Bash是否可以直接解釋其他函數?

最佳答案

這不是 很難。您必須利用該語言的功能來指定要運行的代碼。弄清楚如何逃避代碼和輸入是棘手的。但它的可行性:

# source-lang.sh: define some bash functions that call other languages
perl_sqrt()
{
    export operand=$1
    perl <<'EOF'
        print sqrt($ENV{operand}),"\n"
EOF
}

python_log()
{
    a=$1
    b=$2
    if [ "$b" = "" ] ; then
    b=$a
    a=10
    fi
    python <

$ source source-lang.sh
$ perl_sqrt 289
17
$ python_log 2 128
7.0
$ f=`perl_sqrt 1024`
$ echo $f
32

轉載註明原文: Bash采用其他語言的功能