Tag: sh

sh和bash之间的区别

在编写shell程序时,我们经常使用/bin/sh和/bin/bash 。 我通常使用bash ,但我不知道它们之间有什么区别。 bash和sh之间的主要区别是什么? 在bash和sh编程时我们需要注意什么?

Dockerfile入口点

我正在尝试自定义以下存储库中显示的Docker镜像https://github.com/erkules/codership-images 我在Dockerfile中创build了一个cron作业,并试图用CMD运行它,知道erkules图像的Dockerfile有一个ENTRYPOINT ["/entrypoint.sh"] 。 它没有工作。 我尝试创build一个单独的cron-entrypoint.sh并将其添加到dockerfile中,然后testing像这样的ENTRYPOINT ["/entrypoint.sh", "/cron-entrypoint.sh"] 。 但也得到一个错误。 我尝试将cron作业添加到erkules图像的entrypoint.sh中,当我把它放在开头时,容器运行cron作业,但不执行其他的entrypoint.sh。 而当我把cron脚本放在entrypoint.sh的末尾时,cron作业不能运行,但是entrypoint.sh中的任何东西都会被执行。 我怎么能够通过Dockerfile同时运行erkules image的entrypoint.sh和我的cron作业?

在Docker-compose完成之后填充cassandra

这是我docker-compose.yaml : version: '3' services: cassandra: container_name: cassandra image: cassandra:3.10 ports: – 9142:9042 volumes: – $PWD/src/database/migrations:/migrations depends_on: – mysql mysql: image: mysql:5.7 volumes: – ./src/database/migrations:/docker-entrypoint-initdb.d ports: – 3307:3306 restart: always environment: – MYSQL_ROOT_PASSWORD=password – MYSQL_DATABASE=leonardo – MYSQL_ALLOW_EMPTY_PASSWORD=1 和一个shell脚本bootstrap.sh启动: #!/bin/bash set -e docker-compose -f $PWD/docker-compose.yaml down docker-compose -f $PWD/docker-compose.yaml up -d 这是工作,并启动堆栈。 现在我想给Cassandra添加一个密钥空间,但是在这行下面会抛出一个错误: docker-compose -f $PWD/docker-compose.yaml […]

通过Powershell使用多个命令启动外部程序

我目前正试图启动一个不同的控制台(.exe)并传递多个命令; 而启动和input一个命令工作得很好,我一直无法找出如何通过PowerShellinput多个。 & "C:\Program Files\Docker Toolbox\start.sh" docker-compose up -d –build 给定的命令工作正常,但提到我需要通过多个命令 – 我尝试使用数组,ScriptBlocks和不同的序列,但无济于事。 编辑 : 注意到docker build有一个-f标签,允许我指定一个文件; 然而,现在的问题似乎是执行cmd删除所有反斜杠和特殊字符,渲染path没有用。 例: &"C:\Program Files\Docker Toolbox\start.sh" 'docker-compose build -f path\to\dockerfile' 将导致错误,指出"pathtodockerfile"是一个无效的path。

在Bashvariables赋值中找不到命令错误

我有这个脚本叫做test.sh: #!/bin/bash STR = "Hello World" echo $STR 当我运行sh test.sh我得到这个: test.sh: line 2: STR: command not found 我究竟做错了什么? 我在网上看到极其基本的/初学者的bash脚本教程,这就是他们如何声明variables…所以我不知道我在做什么错了。 我在Ubuntu服务器9.10。 是的,bash位于/bin/bash 。

如果我的docker运行hello-world出于任何原因失败,我怎么能jenkins失败?

大家好我使用jenkins执行初始安装。 这是我的脚本: # Setup installation repository yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo yum makecache fast # Install yum install docker-ce # Run systemctl start docker # Test docker run hello-world #Add user to the group usermod -aG docker root 如果我的docker运行hello-world出于任何原因失败,我怎么能jenkins失败。 有人知道这个剧本吗? Iam从我的Jenkins主服务器的“Execute Shell”占位符运行shell脚本,它执行我的从节点上的所有事情。 这是一个好主意吗 ??

Shell脚本来validationLinux上的docker安装

我想写一个shell脚本来validationdocker是否安装。 如果docker已安装: $ docker -v Docker version 1.7.0, build 0baf609 $ echo $? 0 如果docker没有安装: $ docker -v The program 'docker' is currently not installed. You can install it by typing: apt-get install docker $ echo $? 127 这是我的脚本: #!/bin/bash docker -v if echo $? = 128 ; then echo "The program 'docker' is currently […]

Docker-compose depend_on

我有一个mongodb服务和一个运行docker-compose的testing服务: services: mongo: image: myrepo/mongo ports: – "27017:27017" test: depends_on: – mongo image: myrepo/elixir-tests command: sh start.sh 在start.sh脚本我试图运行: mongo 172.20.0.10:27017/wc-app-sandbox –eval "printjson(….))" 但我得到以下错误: start.sh: 10: start.sh: mongo: not found 我的问题是:为什么错误发生 – 不是depends_on属性假设自动包含服务依赖关系? 如这里所述 : 依赖于取决于 表示服务之间的依赖关系,这有两个作用: docker-compose up将以依赖性顺序启动服务。 在下面的例子中,db和redis将在web之前启动。 docker-up up SERVICE将自动包含SERVICE的依赖关系。 在下面的例子中,docker-up up web也会创build并启动db和redis。

在docker映像中的sh在Windows 10上看不到可执行文件

我有一个docker图像https://github.com/carnellj/spmia-chapter1它找不到它的CMD ./run.sh可执行文件,尽pipe它在文件系统中。 我能够在容器中运行/ bin / sh,并且我可以使用ls -l: D:\Dokumente\ws\spring-microservices\spmia-chapter1 (master) λ docker run -i -t johncarnell/tmx-simple-service:chapter1 /bin/sh / # ls -l total 56 drwxr-xr-x 2 root root 4096 Mar 3 11:20 bin drwxr-xr-x 5 root root 360 Apr 22 07:10 dev drwxr-xr-x 1 root root 4096 Apr 22 07:10 etc drwxr-xr-x 2 root root 4096 Mar […]

将函数输出保存到参数中命名的variables中

我有一个有趣的问题,我似乎无法find答案。 我正在创build一个简单的应用程序,它将帮助我的开发部门自动启动具有NginX和configuration文件的Docker容器。 我的问题是,由于某种原因,我不能让bash脚本存储文件夹的名称,同时扫描目录。 这是我正在谈论的一个非常简单的例子…. #!/bin/bash getFolder() { local __myResultFolder=$1 local folder for d in */ ; do $folder=$d done __myResultFolder=$folder return $folder } getFolder FOLDER echo "Using folder: $FOLDER" 然后,我将这个简单的脚本保存为folder_test.sh,并将其放在只有一个文件夹的文件夹中,将所有者更改为我,然后授予它正确的权限。 但是,当我运行脚本,我不断收到错误… ./folder_test.sh: 8 ./folder_test.sh: =test_folder/: not found 我已经尝试把$folder=$d部分在不同types的引号,但没有任何作品。 我试过$folder="'"$d"'" , $folder=`$d` , $folder="$d"但没有任何作品。 让我疯狂,任何帮助将不胜感激。 谢谢。