相关疑难解决方法(0)

如何使用 nounset shell 选项测试 4.2 版之前的 Bash 中是否定义了变量?

对于“GNU bash,版本 4.2”之前的 Bash 版本,是否有任何等效-vtest命令选项替代方案?例如:

shopt -os nounset
test -v foobar && echo foo || echo bar
# Output: bar
foobar=
test -v foobar && echo foo || echo bar
# Output: foo
Run Code Online (Sandbox Code Playgroud)

bash test

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

当我使用空字符串作为参数时,“read”shell 命令的“-d”选项会做什么?

当我阅读这个答案时,作者使用此命令将定界符的结果放入变量:

read -r -d '' VAR <<'EOF'
abc'asdf"
$(dont-execute-this)
foo"bar"''
EOF
Run Code Online (Sandbox Code Playgroud)

我对这个选项有点困惑-d。从该命令的帮助文本中read

-d delim
continue until the first character of DELIM is read, rather than newline
Run Code Online (Sandbox Code Playgroud)

因此,如果我将空字符串传递给-d,则意味着读取直到第一个空字符串。这是什么意思?作者在答案下评论-d ''说使用NUL字符串作为分隔符。这是真的吗(空字符串意味着 NUL 字符串)?为什么不使用类似-d '\0'-d '\x0'等的东西?

bash read

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

bash 脚本中 a='' 的含义是什么?

有人能告诉我a='' bash 脚本中的含义是什么吗?

例如:

 #!/bin/bash

    a=''
    case $@ in
    testfile)
             for list in $(cat $1);do

useradd -s /bin/false $list
         done
         ;;
$a)
         echo "empty"
         ;;
*)
         echo "wrong character"
         ;;
esac
Run Code Online (Sandbox Code Playgroud)

谢谢

bash shell-script

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

标签 统计

bash ×3

read ×1

shell-script ×1

test ×1