相关疑难解决方法(0)

Shell脚本"|| {}"可读替代

当我遇到包含此代码的答案时,我一直在寻找一种方法来检查是否使用Shell Script安装了一个程序:

hash foo 2>&- || { echo >&2 "I require foo but it's not installed.  Aborting."; exit 1; }
Run Code Online (Sandbox Code Playgroud)

但该代码不是(人类)可读的,该语法的替代方案是什么?

syntax bash shell

4
推荐指数
1
解决办法
776
查看次数

Bash,...使用bash脚本检查是否安装了程序

我正在尝试创建一个小脚本来检查程序是否已安装.我正在尝试使用tmux,......

`tmux --help` | grep "tmux: command not found" &> /dev/null
if [ $? == 1 ]; then
    echo "tmux is not installed"
    exit
fi
Run Code Online (Sandbox Code Playgroud)

安装完tmux后,我得到:

usage: tmux [-2lquvV] [-c shell-command] [-f file] [-L socket-name]
            [-S socket-path] [command [flags]]
tmux is not installed
Run Code Online (Sandbox Code Playgroud)

如果没有安装程序,请使用字符串"tmux:command not found".这可以解释为什么我grep输出tmux --help命令.是否是检查tmux是否安装的正确方法?

脚本alwais回声"未安装tmux".即使我安装了tmux.它出什么问题了?

bash

4
推荐指数
1
解决办法
8974
查看次数

检测在bash脚本中找不到的命令

我有一系列要执行的命令.但是,每当"找不到命令"错误发生时我都需要退出.因此,输出的执行后检查不是一个选项

"$?" 当'找不到'命令'和成功时,变量等于零.

linux bash shell

3
推荐指数
2
解决办法
4785
查看次数

在bash`if [..]`语句中检查命令是否成功

我正在尝试自动化我们的应用程序备份.过程的一部分是检查的退出状态egrep中的if语句:

if [ ! -f /opt/apps/SiteScope_backup/sitescope_configuration.zip ] ||
   [ egrep -i -q "error|warning|fatal|missing|critical" "$File" ]
then 
  echo "testing"
fi
Run Code Online (Sandbox Code Playgroud)

我希望它输出,testing因为文件存在并egrep返回成功,但我得到一个错误:

-bash: [: too many arguments
Run Code Online (Sandbox Code Playgroud)

我尝试了各种语法 - 附加括号,引号等但错误仍然存​​在.

请帮助我理解我哪里出错了.

bash if-statement

3
推荐指数
1
解决办法
6593
查看次数

关于bash文件的混淆存在测试操作员

以下内容不返回任何内容:

which asdf
Run Code Online (Sandbox Code Playgroud)

那么,为什么在这里触发if语句呢?

x=$(which asdf)
if [ -f $x ]; then echo "exists"; fi
Run Code Online (Sandbox Code Playgroud)

bash

3
推荐指数
1
解决办法
49
查看次数

bash - 检查服务器上是否安装了cPanel

我在bash中有一个小脚本,它检查服务器是否是cPanel服务器

#!/bin/bash
echo "checking"
x=$(/usr/local/cpanel/cpanel -V)
if [ "$x" ]; then
        echo "yes"
else
        echo "no"
fi
Run Code Online (Sandbox Code Playgroud)

这很好,并提供正确的预期输出.但是,在非cPanel服务器上运行时,它还会引发以下错误:

./testcpanel.sh: line 2: /usr/local/cpanel/cpanel: No such file or directory 我想压制这个输出.

我尝试插入2>&1 /dev/null变量声明,但这不起作用.yes无论cPanel是否存在,它总是作为输出给出.

我如何抑制输出?(操作系统测试 - CentOS 6和Ubuntu 13.04)

linux bash ubuntu centos

2
推荐指数
1
解决办法
4334
查看次数

如何确定 Windows 上的命令是否存在?

在 Linux 上你可以使用command; 如何确定 Windows 上是否存在某个命令?

where似乎不起作用cd;我正在寻找即使在内置命令上也能工作的东西。

windows cmd

2
推荐指数
1
解决办法
2693
查看次数

卷曲后的路径问题

我使用以下命令在克隆存储库后编译了curl:

./buildconf
./configure --with-libssh2
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

但是,在sudo make install之后,如果

  • 我跑curl -V,我得到:bash下/usr/bin/curl: No such file or directory
  • 我跑步/usr/local/bin/curl -V,我得到:/usr/local/bin/curl: symbol lookup error: /usr/local/bin/curl: undefined symbol: curl_mime_type

我尝试通过将curl / src的路径添加到我的PATH变量来解决这个问题,这使curl命令从终端为我的用户工作。但是,如果我尝试安装php-curl,可以理解apache不会看到卷曲,而是安装了另一种。

关于如何解决此问题的任何想法?

编辑:评论中提到的另一篇文章是询问编译后在哪里可以找到可执行文件。那部分被回答了。但是,如果不将条目添加到PATH变量中,这似乎是不正确的,但是我仍然无法使curl正常工作。这就是我现在要弄清楚的部分。

linux ubuntu curl ubuntu-18.04

1
推荐指数
1
解决办法
2085
查看次数

如何在 Haskell 中判断 Linux 上是否安装了程序

我正在创建一个使用与服务器交互的外部程序的脚本。我想在尝试使用该程序之前先测试该程序是否已安装。

我查找了判断程序是否已安装的首选方法,并找到了这篇文章: How can I check if a program contains from a Bash script?

TLDR:它建议使用“command -v <prog-name>”而不是“which <prog-name>”,因为它是 POSIX 兼容的。如果找到程序,该命令应返回 0,否则返回 >0。

所以我从 System.Process 中使用readProcessWithExitCode如下

readProcessWithExitCode "command" ["-v", "<some-program>"] ""
Run Code Online (Sandbox Code Playgroud)

在 GHCI 中测试时出现以下错误

异常:命令:readCreateProcessWithExitCode:posix_spawnp:不存在(没有这样的文件或目录)

我尝试在“命令”上使用“which”。它告诉我它不存在,尽管我可以使用它,并且它的工作原理如我的终端中的手册页中所述。

这是怎么回事?我如何查看是否使用 Haskell 安装了某些内容?

一些系统信息:

  • GHC:9.0.2
  • 解析器:lts-19.11
  • “顺便说一句,我使用 Arch”

bash haskell posix

1
推荐指数
1
解决办法
329
查看次数

bash,测试curl是否存在,如果不存在则安装

我用谷歌搜索了很多解决方案,但没有找到一个完全有效的解决方案。我自己的粗略工作是:

[ $(which curl) -eq "" ] || sudo apt install curl
Run Code Online (Sandbox Code Playgroud)

这不太有效,说“预期是一元运算符”。我已经尝试过===,所以我不知道如何进行这样的测试。空输出是否有可能which curl是 $null 而我必须对此进行测试?

或者,有没有办法只运行sudo apt install curl然后2>&null在最后抑制它是否已经安装?

bash curl sudo

0
推荐指数
1
解决办法
3752
查看次数

标签 统计

bash ×8

linux ×3

curl ×2

shell ×2

ubuntu ×2

centos ×1

cmd ×1

haskell ×1

if-statement ×1

posix ×1

sudo ×1

syntax ×1

ubuntu-18.04 ×1

windows ×1