标签: shell

无法设置docker-machine环境变量bash

我'使用bash 4.3,我无法导出或设置docker-machine环境变量

bash-4.3$ docker-machine env default
set -gx DOCKER_TLS_VERIFY "1";
set -gx DOCKER_HOST "tcp://192.168.99.100:2376";
set -gx DOCKER_CERT_PATH "/Users/ofolorunso/.docker/machine/machines/default";
set -gx DOCKER_MACHINE_NAME "default";
# Run this command to configure your shell: 
# eval (docker-machine env default)
Run Code Online (Sandbox Code Playgroud)

显然bash不承认g旗帜

bash-4.3$ eval "$(docker-machine env default)"
bash: set: -g: invalid option
set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
bash: set: -g: invalid option
set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
bash: set: -g: invalid option
set: usage: set [-abefhkmnptuvxBCHP] …
Run Code Online (Sandbox Code Playgroud)

linux bash shell fish docker

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

如何使shell脚本在Linux和OS X上运行?

我有一段代码来编译tex文档.

#!/usr/bin/env bash

filename="thesis"

pdflatex -shell-escape $filename
makeglossaries $filename
bibtex $filename
pdflatex $filename
pdflatex $filename

# for Ubuntu
#xdg-open $filename.pdf

# for mac
open $filename.pdf
Run Code Online (Sandbox Code Playgroud)

如何使此脚本在Linux和OS X上运行?我认为应该是这样的,

if is Linux; then
    xdg-open $filename.pdf
elif is OS X; then
    open $filename.pdf
fi
Run Code Online (Sandbox Code Playgroud)

linux macos shell compatibility

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

在unix shell脚本中迭代一系列日期

我正在尝试创建一个脚本,其中4天前的日期应该等于当前日期,如果不是那么再添加1天并检查.下面是我创建的但仍然不清楚答案.


#!/bin/bash

batchdate=`date --date "4 day ago" '+%Y%m%d'`
matchdate=`date --date "today" '+%Y%m%d'`

for i in {0..4}
do
    if [ $batchdate != $matchdate && $NEXT_DATE != $matchdate ]; then

   NEXT_DATE=$(date +%Y%m%d -d "$batchdate + $i day")

   echo "$NEXT_DATE"

   break

   fi

done
Run Code Online (Sandbox Code Playgroud)

bash shell sh

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

为什么git branch和$(git branch)输出不同的结果

我正在尝试制作一个bash脚本,该脚本将在其他分支的当前分支之前打印提交。但是,当我git branch在子shell中执行命令时,不仅获得分支名称,还获得当前目录中的文件和文件夹列表。为什么呼叫的$(git branch)行为方式如此?

unix git bash shell version-control

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

BASH Shell使用变量中的空格扩展参数

说我有一个$ARGS包含以下内容的变量:

file1.txt "second file.txt" file3.txt
Run Code Online (Sandbox Code Playgroud)

如何将$ARGSas参数的内容传递给命令(例如cat $ARGS,说),将其"second file.txt"视为一个参数而不将其拆分为"secondand file.txt"

理想情况下,我希望能够将参数准确地传递给任何存储在变量中的命令(从文本文件中读取,但我认为这不相关)。

谢谢!

unix bash shell arguments spaces

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

如何在Ansible中运行shell函数作为命令?

我正在使用nvm(https://github.com/creationix/nvm),它本质上是一个shell脚本,您可以将其导入shell,然后调用nvm install [version].但无论我如何尝试并调用该函数,ansible似乎都无法找到它.

我尝试过使用commandshell模块.我尝试过使用becomebecome_user.我尝试过sudo -iuhttps://github.com/leonidas/ansible-nvm/blob/master/tasks/main.yml中使用,但它对我不起作用.它必须是可能的,因为它在该文件中工作.

如何在Ansible中运行任何shell函数?在这种情况下source nvm.sh,我的.zshrc中有一个允许我nvm从交互式shell中执行命令.

bash shell nvm ansible ansible-playbook

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

包含换行符的Perl参数

我正在尝试编写一个perl脚本,通过电子邮件发送我在第一个参数中提供的任何内容,但我需要电子邮件正文有多行.当我将文本传递给脚本时(使用MIME :: Lite,fyi),电子邮件正文只有一行,因为我在脚本中传递的"\n"似乎没有在电子邮件正文中转换为换行符.

这是一个例子

脚本简介内容:

    my $message = $ARGV[0];
    #blah blah
    sendEmail $message;
Run Code Online (Sandbox Code Playgroud)

调用脚本时的命令示例

sendEmail.pl "Issue: CPU usage is high \n Time: 11:20AM \n"
Run Code Online (Sandbox Code Playgroud)

我需要的:

Issue: CPU issue
Time: 12:00AM
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

Issue: CPU issue \n Time: 12:00AM \n
Run Code Online (Sandbox Code Playgroud)

即使我只想打印输出该字符串print "$message",我也得到相同的输出.

如何强制perl考虑\n传递给它的字符,以便在看到该字符时将内容移动到下一行?

shell perl arguments

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

grep命令用于查找小于数字的上一个单词

我需要一个grep命令的帮助:

grep match-word tomcat-0.log.* | grep "TOMCAT BENCH" | grep -v Normal
Run Code Online (Sandbox Code Playgroud)

目前的输出类似于:

tomcat-0.log:TOMCAT BENCH: match_word random-text 1420 elapsed Thu 2016-09-22 06:31:04:928 PDT <SessionID: id> <RequestID: reqId> 
Run Code Online (Sandbox Code Playgroud)

我想修改它以仅显示经过值大于数字的那些行 3000

这个词elapsed总是存在,而数字就是之前 的单词elapsed.

你能否修改grep命令来过滤前一个单词并将其与一个数字进行比较?

regex linux shell awk grep

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

在bash脚本中使用标志

linux中的脚本以一些声明开头:

#!/bin/bash

如果我错了,请纠正我:这可能说明要使用哪个shell.

我还看到一些脚本说:

#!/bin/bash -ex

标志-ex的用途是什么?

linux bash shell

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

如何使用Expect脚本更改当前工作目录?

我想编写一个可以执行某些任务的Expect脚本,最后更改目录并将控制权交给用户。我尝试使用

spawn cd path\to\dir interact

但我仍然在同一目录中。任何有关如何使用Expect实现此目标的线索?

shell expect

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

标签 统计

shell ×10

bash ×6

linux ×4

arguments ×2

unix ×2

ansible ×1

ansible-playbook ×1

awk ×1

compatibility ×1

docker ×1

expect ×1

fish ×1

git ×1

grep ×1

macos ×1

nvm ×1

perl ×1

regex ×1

sh ×1

spaces ×1

version-control ×1