【发布时间】:2024-08-21 05:50:01
【问题描述】:
我创建了执行以下操作的简单 bash 脚本 :
#!/usr/bin/env bash
cf ssh "$1"
当我像 cf ssh myapp 这样从 CLI 运行命令行时,它会按预期运行,但是当我像这样运行脚本时
. myscript.sh myapp
我收到错误:找不到应用
我不明白有什么区别,我在调用脚本后提供了应用程序名称,这里可能缺少什么?
更新
当我使用以下脚本运行脚本时,知道为什么“$1”不起作用...
#!/usr/bin/env bash
cf ssh myapp
【问题讨论】:
-
您为什么要获取 (
.) 脚本?cf是别名、命令还是其他东西,它在哪里以及如何安装/定义?错误消息看起来像是来自cf的内容,这可能不是编程问题。 -
我不使用
cf,但您在打开 TTY 并尝试通过 ssh 连接到另一个 tty 时似乎会遇到麻烦。你试过cf ssh没有任何程序名称,所以你可以看看它是否有效。您也可以尝试通过cf -i更改您应用的实例,但我不确定这是否会有所帮助。 -
@tripleee - 脚本的来源 (.) 是什么意思?我怎么能称之为不同。 myscript 应用名称?我从能够运行命令 cf ssh myapp (有效)的同一路径运行脚本我只想创建一些运行它的脚本...
-
@suleiman - 是的,当我准确地输入脚本时,我需要的命令就像 cf ssh myapp 它的工作......唯一的区别是在脚本中我想传递一个参数 "$1" 。 ..
-
创建脚本时,您可以随意命名。然后你需要让它可以执行
mod +x filename。您可以通过./scriptname调用脚本,或者将 bin 文件夹添加到 home 并为其添加一些权限。或者使用文件夹/usr/local/bin来存储脚本和类似文件。顺便说一句,这些文件将在没有任何点或斜杠的情况下被调用。正常的 bash 声明是#!/bin/bash,其中没有 env。