- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 KornShell (ksh) 脚本中有一个循环,我想至少执行一次,并且我想要一种优雅的方式来执行它,但是虽然我已经找到了很多关于如何编写 while 循环的东西,但是do...while 循环似乎没什么意义。
我正在做的是从配置文件中读取以逗号分隔的文件列表并处理它们。如果文件列表为空,那么我想处理目录中的所有文件。
执行此操作的好方法是什么?
编辑:这是我目前拥有的。我获取文件名,然后将其从字符串中删除以用于下一次传递。如果文件列表为空,我将退出循环。但是,如果列表一开始是空的,我希望它仍然运行一次。
while [[ -n "${FILES%%,*}" ]]; do
FILE="${FILES%%,*}"
FILES="${FILES#*,}"
done
最佳答案
是的,ksh
中的标准 while
循环支持开箱即用:
while ...; do ...; done
标准的 while
循环有代码块 before 和 after do
。
每个 block 可能包含多个命令。通常我们只使用第一个 block 的单个命令,其退出状态决定是否循环终止或继续。
当我们使用多个命令时,只有最后一个命令的状态很重要。
while
echo do this always # replace with your code
[[ -n "${FILES%%,*}" ]]
do
FILE="${FILES%%,*}"
FILES="${FILES#*,}"
done
关于shell - KornShell (ksh) 是否有 Do...While 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179211/
我试图检查一个变量是否正好是两个数字,但我似乎无法弄清楚。 您如何在 KornShell (ksh) 中检查正则表达式 (regex)? 我试过了: if [[ $month =~ "[0-9]{2}
我在 KornShell (ksh) 中有以下代码: FAILURE=1 SUCCESS=0 isNumeric(){ if [ -n "$1" ]; then case $1
$$是什么意思在 KornShell 中?我猜它与进程 ID 相关联,但我想知道它的确切含义。 最佳答案 $$是 ksh 进程本身的进程 ID; $PPID是其父进程的进程 ID。 这是ksh (93
尝试将一个变量的值分配给另一个变量时,我遇到了一个奇怪的错误。初始变量值在开头和结尾包含'符号。 代码如下: server = $(uname -n) passpre = "'HPre2053#'"
如果没有 ksh,我将无法执行我的 KornShell (ksh) 脚本命令。我包括 #!/bin/ksh在脚本的第一行,但是当我尝试仅按名称执行它时,它说没有这样的文件或目录。有人能帮我吗? 最佳答
我想从函数内部获取函数名称,用于记录目的。 KornShell (ksh) 函数: foo () { echo "get_function_name some useful output" }
我在 Solaris 上使用 KornShell (ksh),目前我的 PS1 环境变量是: PS1="${HOSTNAME}:\${PWD} \$ " 并且提示显示:hostname:/full/p
我是 Unix 的新手,正在使用 sun solaris(我认为是 v10)。我的 shell 设置为 KornShell (ksh)。 我想知道如何使箭头键和删除键在命令行中工作。我已经完成了 se
是否可以找到当前在 KornShell (ksh) 中执行的脚本的完整路径? 即如果我的脚本位于 /opt/scripts/myscript.ksh 中,我可以在该脚本中以编程方式发现 /opt/sc
我正在尝试编写一个使用 printf 将字符串填充到特定宽度的 KornShell (ksh) 函数。 例子: 打电话 padSpaces Hello 10 输出 'Hello ' 我目前有:
我在 KornShell (ksh) 上遇到以下代码片段失败: var1="1" var2="2" if [ ( "$var1" != "" -o "$var2" != "") -a ( "$var1
我正在使用 KornShell (ksh) 编写脚本。我的数据库连接是通过 SQLPLUS 连接到 Oracle 9i 数据库。我在将 DB 值放入 shell 变量中没有遇到任何问题,除了任何连续的
我对我正在编写的这个 KornShell (ksh) 脚本有点困惑,主要是使用 bool 值和条件。 所以我的脚本的第一部分是 catme和 wcme两者都设置为 true或 false .这部分工作
假设我在 BASH 或 Kornshell 中执行以下命令: $ foo | while read line > do > echo "Line = '$line'" > done 如果我设置了
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我对 KornShell (ksh) 中的测试命令有疑问。我知道 -ne 用于比较整数,而 != 用于比较字符串。如果一个参数是字符串而另一个是整数,测试命令将如何表现?我的代码中有以下条件,并且都正
我知道,获取脚本和执行脚本的唯一区别是在后一种情况下,父环境不受影响。 考虑这个示例脚本: SETUP_DIR=`dirname $0` echo $SETUP_DIR echo $0 echo $1
下面是一个简单的脚本,用于查明所有文件是否存在以及大小是否大于零。来自 here我知道“-s”用于该任务。 if [ -s ${file1} && -s ${file2} && -s ${file3}
我有一个 KornShell (ksh) 脚本,它应该在从提示符运行后显示 echo。 #!/bin/ksh file="file_path" if [ -s $file ] then
我有一个重定向 std out/std err 的脚本,如下所示: SCRIPTS=/test/scripts LOG=/test/log echo $SCRIPTS echo $LOG $SCRIP
我是一名优秀的程序员,十分优秀!