可以使用select
内置实现这一目标,
PS3='Select the platform to use: '
select choice in $(seq 3)
do
[[ $choice -eq 1 ]] && echo "Linux PC based"
[[ $choice -eq 2 ]] && echo "ABC 1"
[[ $choice -eq 3 ]] && echo "XYZ 4"
break
done
确保export
在~/.bashrc
的PS3
价值,使其永久化。另外值得加点,select
不是POSIX
兼容选项,可能无法跨平台移植。
您可以在单一脚本中调用此方法并在另一个脚本中调用的方式是将上述代码包装在函数中,并将其嵌入到另一个文件中。在原始脚本上,例如说script1.sh
,在调用脚本函数包装为
#!/bin/bash
function optselect() {
arg1=$1
select arg1 in $(seq 3)
do
[[ $arg1 -eq 1 ]] && echo "Linux PC based"
[[ $arg1 -eq 2 ]] && echo "ABC 1"
[[ $arg1 -eq 3 ]] && echo "XYZ 4"
break
done
}
然后例如说script2.sh
#!/bin/bash
source ./script1.sh
optselect 1 # Calling the script with argument '1'
感谢您的帮助。但是,我需要从另一个脚本调用此脚本。我需要从调用脚本 –
@SathishKumar将值传递给'SELECT':将其作为参数传递给其他脚本,并使用'$(seq 3)'中的$ select $ 1,希望你能做到这一点 – Inian
谢谢。让我试试 –