gpt4 book ai didi

bash - 在 Ubuntu 中,如何在 bash for 循环中创建别名?

转载 作者:行者123 更新时间:2023-12-04 19:02:36 25 4
gpt4 key购买 nike

我有一个脚本可以帮助我测试并发性。我使用屏幕一次运行一堆东西。但在这一切中,我无法弄清楚如何使用 for $i 变量创建别名(或函数?)。

#!/bin/bash
# alias p='. ./p.sh'

# Run a bunch of apps in separate screens.

export NUM_MUS=3
for (( i = 1; i <= $NUM_MUS; ++i ))
do
echo $i
cd ~/mutest/mu$i
screen -mS mu$i -h 10000 ./app

# How do I make an alias to let me easily access each screen?
# None of these work.
#
# alias mu$i='screen -dr mu$i'
# eval
# function mu$i () { screen -dr mu$i }

# ^AD to get out
done

# Have a way of killing them all.

function mustop ()
{
for (( i = 1; i <= $NUM_MUS; ++i ))
do
screen -r mu$i -X quit
done
screen -ls
}

请注意,我不是在问参数。我不想要参数......除非有办法让它与参数一起工作?

...

好的,我可以添加这一行,它会“足够好”
function mu { screen -dr mu$1 }

但它仍然没有回答我使用 for 循环变量来制作一堆别名/函数的问题。我并不是说这是最聪明的做事方式,但如果我确实想这样做,我会怎么做?

最佳答案

变量在双引号内展开,而不是在单引号内。

alias mu$i="screen -dr mu$i"

另外,请确保使用 source scriptname 运行脚本。 ,因此别名将在您的原始 shell 中定义,而不仅仅是执行脚本的 shell。

关于bash - 在 Ubuntu 中,如何在 bash for 循环中创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com