我'使用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) 我有一段代码来编译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) 我正在尝试创建一个脚本,其中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脚本,该脚本将在其他分支的当前分支之前打印提交。但是,当我git branch在子shell中执行命令时,不仅获得分支名称,还获得当前目录中的文件和文件夹列表。为什么呼叫的$(git branch)行为方式如此?
说我有一个$ARGS包含以下内容的变量:
file1.txt "second file.txt" file3.txt
Run Code Online (Sandbox Code Playgroud)
如何将$ARGSas参数的内容传递给命令(例如cat $ARGS,说),将其"second file.txt"视为一个参数而不将其拆分为"secondand file.txt"?
理想情况下,我希望能够将参数准确地传递给任何存储在变量中的命令(从文本文件中读取,但我认为这不相关)。
谢谢!
我正在使用nvm(https://github.com/creationix/nvm),它本质上是一个shell脚本,您可以将其导入shell,然后调用nvm install [version].但无论我如何尝试并调用该函数,ansible似乎都无法找到它.
我尝试过使用command和shell模块.我尝试过使用become和become_user.我尝试过sudo -iu在https://github.com/leonidas/ansible-nvm/blob/master/tasks/main.yml中使用,但它对我不起作用.它必须是可能的,因为它在该文件中工作.
如何在Ansible中运行任何shell函数?在这种情况下source nvm.sh,我的.zshrc中有一个允许我nvm从交互式shell中执行命令.
我正在尝试编写一个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传递给它的字符,以便在看到该字符时将内容移动到下一行?
我需要一个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命令来过滤前一个单词并将其与一个数字进行比较?
linux中的脚本以一些声明开头:
#!/bin/bash
如果我错了,请纠正我:这可能说明要使用哪个shell.
我还看到一些脚本说:
#!/bin/bash -ex
标志-ex的用途是什么?
我想编写一个可以执行某些任务的Expect脚本,最后更改目录并将控制权交给用户。我尝试使用
spawn cd path\to\dir
interact
但我仍然在同一目录中。任何有关如何使用Expect实现此目标的线索?