小编spo*_*ovy的帖子

如何在bash中跨多行拆分字符串

对我来说一个持续的烦恼(次要,但不变)是我不能(或不知道如何)在 bash 代码中将字符串拆分为多行。我有的是这个:

    while getopts 'd:h' argv; do
    case "${argv}" in
        d) local target_dir="${OPTARG}" ;;
        h)
           printf "Usage: remove_file_end_strings [ -d <work directory> ] <string to remove>\n"
           return 1
           ;;
    esac
Run Code Online (Sandbox Code Playgroud)

这里看起来不错,因为没有自动换行,但是当限制为 80 个字符并且自动换行时看起来很不整洁。当我想要的是这样的东西时,这在 python 或 ruby​​ 中很简单:

    while getopts 'd:h' argv; do
    case "${argv}" in
        d) local target_dir="${OPTARG}" ;;
        h)
           printf "Usage: remove_file_end_strings [ -d <work "
                  "directory> ] <string to remove>\n"
           return 1
           ;;
    esac
Run Code Online (Sandbox Code Playgroud)

我的 google-fu 让我失望了,所以有没有办法在 bash 中实现这一点,还是我只需要继续用力咬一块木头?塔

编辑:我刚刚决定了我的次优解决方案:

    while getopts 'd:h' argv; do
    case "${argv}" …
Run Code Online (Sandbox Code Playgroud)

bash shell printf string-formatting

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

如何在Ansible中创建一个'null'默认值

我希望“ lucy”遵循用户模块创建者的默认行为,即创建并使用与用户名“ lucy”匹配的组。但是,对于“坦率的”,我希望主要群体是现有的;gid1003。所以我的哈希看起来像这样:

lucy:
  comment: dog
frank:
  comment: cat
  group: 1003
Run Code Online (Sandbox Code Playgroud)

我的任务如下所示:

- name: Set up local unix user accounts
  user:
    name: "{{ item.key }}"
    comment: "{{ item.value.comment }}"
    group: "{{ item.value.group | default(undef) }}"
  loop: "{{ users|dict2items }}"
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为无法识别undef。我也想不出什么。'null','None'等都会失败。''创建一个也不正确的空字符串。我不知道该怎么做。有任何想法吗?

jinja2 ansible

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

标签 统计

ansible ×1

bash ×1

jinja2 ×1

printf ×1

shell ×1

string-formatting ×1