运行 Bash 脚本后跟关键字或变量

Run Bash Script followed by keyword or Variable

我尝试在线搜索答案,但发现很难用短语来表达搜索条件来找到我要查找的内容。对于初学者来说,我是 coding/scripting.

的菜鸟

我了解到如何在脚本中使用读取函数来根据用户输入创建变量,这很棒。我的问题是你可以 运行 一个脚本,后跟一个表示主机名(目标)设备的关键字。这看起来像这样。

sample.sh 主机名

目前我的理解只允许我在脚本 运行 之后将主机名添加到变量中,但这似乎有点慢。我想要的一个例子是检查网络交换机接口状态的通用脚本。以我可以 运行 后跟主机名来快速检查单个设备的方式设置脚本会很棒。我想我缺少一些基本的理解。

我希望我描述清楚了,感谢您提前提供的帮助。我在下面有一个示例 bash 脚本和它传递给

的预期脚本
#!/bin/bash

echo "What device do you want to check TRUNK links?"

read -e host

echo "Username:"

read -e user

echo "Password:"

read -s -e password

./show-trunk.exp $host $user $password;

#!/usr/bin/expect -f

set host [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]

#spawn echo "Running Script..."

log_user 0

spawn ssh $username@$devices

expect "*assword:"

send "$password\r"

expect "#"

log_user 1

send "show int desc | in TRUNK\r"

expect "#"

send "exit\r"

bash 中有一些特殊变量,表示放入其中的参数。您可以这样指定它们:

#!/usr/bin/env bash
echo   

然后到运行命令行脚本:

~> ./test.sh hello bash user
hello bash user

如果您需要测试参数数量是否正确,您可以像这样做一个简单的 if 语句:

#!/usr/bin/env bash
if [[ "$#" -eq 3 ]]; do
    echo   
else
    echo "Not enough arguments"
fi

那么如果你在命令行中调用它:

~> ./test.sh hello bash user
hello bash user
~> ./test.sh oops
Not enough arguments