标签: bash4

bash:迭代通过txt文件行无法读取最后一行

while read p; do
echo $p
done < file.txt

这段代码可以读取file.txt中的所有行,除了最后一行以外的任何想法.谢谢

bash bash4

3
推荐指数
2
解决办法
1072
查看次数

Bash 4.0.0 中 $@ 未绑定变量的解决方法?

特别4.0.0是在 Bash 版本中,是否有任何方法可以解决在启用$@时使用空引发未绑定变量错误的问题set -u

考虑以下:

#!/usr/bin/env bash-4.0.0-1

set -xvu

echo "$BASH_VERSION"
echo "${BASH_VERSINFO[@]}"

main () {
  printf '%q\n' "${@:-}"
}

main "${@:-}"
Run Code Online (Sandbox Code Playgroud)

当我提供一组空参数时,给我以下输出:

neech@nicolaw.uk:~ $ ./test.sh

echo "$BASH_VERSION"
+ echo '4.0.0(1)-release'
4.0.0(1)-release
echo "${BASH_VERSINFO[@]}"
+ echo 4 0 0 1 release x86_64-unknown-linux-gnu
4 0 0 1 release x86_64-unknown-linux-gnu

main () {
  printf '%q\n' "${@:-}"
}

main "${@:-}"
./test.sh: line 12: $@: unbound variable
Run Code Online (Sandbox Code Playgroud)

我只在 Bash 版本中看到这种行为4.0.0

我希望使用变量替换${@:-}可以让我解决这个问题,但似乎不是。

有没有办法解决这个问题?

bash shell sh bash4

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

无法在Bash 4中使用Checkjobs和Autocd

Bash 4中有新选项:checkjobs和autocd.但是,我没有找到他们的文档

man bash
Run Code Online (Sandbox Code Playgroud)

我跑得不成功

{checkjobs,autocd}
Run Code Online (Sandbox Code Playgroud)

我在发行说明中找到了以下内容

 There is a new `checkjobs` option that causes the shell to check for and
 report any running or stopped jobs at exit
Run Code Online (Sandbox Code Playgroud)

There is a new `autocd` option that, when enabled, causes bash to attempt
to `cd` to a directory name that is supplied as the first word of a
simple command.
Run Code Online (Sandbox Code Playgroud)

你怎么能使用autocd和checkjobs?

bash bash4

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

如何在bash中搜索字符串中的字符?

如果我有一个字符串var="root/Desktop",我如何确定varvar 是否包含一个'/'字符?

bash bash4

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

正则表达式:bash 3 vs bash 4

带有正则表达式检查的跟随代码不会在bash 3和bash 4之间输出相同的结果:

TESTCASE="testcase0"
[[ ${TESTCASE} =~ "^testcase[0-9\.]*$" ]]
echo $?
echo ${BASH_REMATCH}
Run Code Online (Sandbox Code Playgroud)

bash 3.2输出一个成功的正则表达式检查:

0
testcase0
Run Code Online (Sandbox Code Playgroud)

bash 4.1未通过正则表达式检查:

1
<empty line>
Run Code Online (Sandbox Code Playgroud)

我无法确定表达式失败的正则表达式模式中的哪个位置.我需要两个版本的bash兼容的代码.

有谁知道我的问题是什么?

谢谢 !

regex linux bash shell bash4

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

标签 统计

bash ×5

bash4 ×5

shell ×2

linux ×1

regex ×1

sh ×1