相关疑难解决方法(0)

echo输出到stderr

是否有一个标准的Bash工具,它像echo一样输出到stderr而不是stdout?

我知道我能做到,echo foo 1>&2但它有点难看,而且我怀疑,容易出错(例如,当事情发生变化时更容易被编辑错误).

bash

1026
推荐指数
14
解决办法
51万
查看次数

如何检查是否在Cygwin,Mac或Linux中运行?

我有一个shell脚本,可以在Windows/Cygwin,Mac和Linux上使用.每个版本需要稍微不同的变量.

shell/bash脚本如何检测它是在Cygwin,Mac或Linux上运行?

bash shell cygwin cross-platform

297
推荐指数
7
解决办法
13万
查看次数

POSIX C API函数列表在哪里?

我试图找出我在哪里可以找到关于POSIX函数的文档,但是很快就会出现.有什么建议?

c posix

26
推荐指数
2
解决办法
2万
查看次数

检查参数是否是bash shell中的有效日期

我正在Linux中编写一个bash shell脚本,该程序将接受一个日期(mm-dd-yyyy)作为参数.我想知道是否有一种简单的方法来检查日期是否有效?是否有操作员,我可以使用测试来检查?

linux bash shell

11
推荐指数
4
解决办法
4万
查看次数

如何有条件地检测操作系统并加载 ZSH 设置?

我在家里和工作中使用多种不同的操作系统,并且我希望能够有条件地加载特定于平台的 ZSH 设置,具体取决于我在给定时刻使用的操作系统。

我尝试了这个,但它没有加载我期望的所有内容:

# Condtitional loading of zsh settings per platform

if command apt > /dev/null; then
    source $ZSH_CUSTOM/os/debian.zsh

elif command systemctl > /dev/null; then
    source $ZSH_CUSTOM/os/systemd.zsh

elif command freebsd-version > /dev/null; then
    source $ZSH_CUSTOM/os/freebsd.zsh

elif [[ `uname` == "Darwin" ]]; then
    source $ZSH_CUSTOM/os/mac.zsh

elif command kubectl > /dev/null; then
    source $ZSH_CUSTOM/os/kubernetes.zsh

else
    echo 'Unknown OS!'
fi
Run Code Online (Sandbox Code Playgroud)

进行此检测的最佳方法是什么以及我做错了什么?我知道我的这种方法不起作用,因为当我运行时zsh -o SOURCE_TRACE,它不会显示所有所需的文件来源。

提前致谢!

linux bash shell zsh oh-my-zsh

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

在sh(ell)脚本中没有OSTYPE

目前我正在使用新的Xubuntu trusty tahr建立一个新系统.我不太熟悉shell脚本,但我有一个需要OSTYPE环境变量才能确定要做什么.

如果我echo $OSTYPE在xfce-terminal中呼叫,我就会成功linux-gnu.

如果我调用以下脚本,我只会得到一个空行.

#!/bin/sh
echo $OSTYPE
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或者它可能是新的ubuntu的问题?

在我的另一台机器上,它适用于该脚本.但我不知道是否有什么改变,因为系统本来不是我的.

linux shell environment-variables sh ubuntu-14.04

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

bash中的字符串比较不起作用

嗨,我是bash脚本的新手.刚刚编写了这个简单的程序,但它正在抛出错误.

#!/bin/bash
os=`uname -o`
echo $os
if ["$os"=="GNU/Linux"] ; then
    echo "Linux"
else
    echo "Windows"
fi 
Run Code Online (Sandbox Code Playgroud)

使用==或-eq两种情况我得到以下错误,它正在打印else condn.

./ostype.sh:line 3:[GNU/Linux == GNU/Linux]:没有这样的文件或目录

视窗

Bash版本:GNU bash,版本3.2.48(1)-release(x86_64-suse-linux-gnu)

bash shell

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

如何确定Jenkins管道中的当前操作系统

确定Jenkins管道正在运行的当前操作系统的方法是什么?

上下文:我正在构建一个共享的Jenkins管道脚本,该脚本应该在所有平台(windows,OSX,linux)上运行,并在每个平台上执行不同的操作.

我尝试过类似的东西:

import org.apache.commons.lang.SystemUtils

if (SystemUtils.IS_OS_WINDOWS){
   bat("Command")
}
if (SystemUtils.IS_OS_MAC){
   sh("Command")
}
if (SystemUtils.IS_OS_LINUX){
   sh("Command")
}
Run Code Online (Sandbox Code Playgroud)

但即使它在Windows或Mac上运行node它总是进入SystemUtils.IS_OS_LINUX分支

我试过像这样的快速管道.

node('windows ') {
     println ('## OS ' + System.properties['os.name'])
}
node('osx ') {
     println ('## OS ' + System.properties['os.name'])
}
node('linux') {
     println ('## OS ' + System.properties['os.name'])
}
Run Code Online (Sandbox Code Playgroud)

每个节点都在具有正确操作系统的机器中正确运行,但所有节点都打印出来 ## OS Linux

有任何想法吗?

谢谢联邦

grails jenkins jenkins-pipeline

6
推荐指数
2
解决办法
8475
查看次数

如何在 bash 脚本中识别我在哪个操作系统上

我需要制作每个系统行为不同的脚本。今天,甚至可以在 microsoft windows、mac、linux、hp-ux、solaris 等系统上运行 bash...

如何确定我在这些操作系统中的哪一个?我不需要确切的版本,我只需要知道我是否在 windows、linux、solaris 上...

bash

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

如何检查 shell 脚本/Vim 是否在 VS Code 集成终端中运行?

问题

问题如标题所述。

总而言之,我试图让我的 bash 脚本和 Vim 在 VS Code 的集成终端中运行时表现出不同的行为。

我发现的东西

我设法找到了其他几个堆栈溢出问题,但它们与操作系统的检测有关:
-如何检查是否在 Cygwin、Mac 或 Linux 中运行?
-如何从 Bash 脚本中检测操作系统?

vim bash shell zsh visual-studio-code

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