linux 怎么写#!/bin/sh到一行脚本

0dxa2lsx  于 2023-08-03  发布在  Linux
关注(0)|答案(2)|浏览(109)

我有一个简单的bash脚本,包含两行:

#!/bin/bash
myArr=("a","a")

字符串
不过,我需要把脚本放到yaml文件中,所以它必须是一行。我试过#!/bin/sh;myArr=("a","a"),但不起作用。有没有办法在一条线上做?
yaml文件用于创建cron作业。它看起来像:

- name: cron for xxxx
  cron:
    name: job1
    job:  <one line script>


我需要#!/bin/bash的原因是我需要在bash中使用array。

nzk0hqpo

nzk0hqpo1#

我需要把脚本中的yaml文件,所以它必须是一行
你似乎在这里急于下结论。YAML文件格式本身并不强制您将所有内容放在一行中。也许读取和执行job:的软件有这样的限制,但是YAML完全允许多行字符串
顺便说一下:bash中的数组是用空格定义的,而不是用,

- name: cron for xxxx
  cron:
    name: job1
    job: |
      #! /bin/bash
      myArr=(a b)

字符串
为了验证这个例子,你可以把它放到一个yaml解析器中,例如:https://yaml-online-parser.appspot.com/的数据。
有关所有多行构造的快速概述,请参见https://yaml-multiline.info/

y3bcpkx1

y3bcpkx12#

使用类似于

bash -c 'myArr=("a","a")'

字符串

相关问题