【发布时间】:2018-12-03 14:45:46
【问题描述】:
这是我的代码:
#!/bin/bash
if [[ $1 = "" ]]; then
exit 0
fi
array=($(cat $1))
let b=${#array[@]}-1
count=0
for i in {1..7}; do
for j in {30..37}; do
for n in {40..47}; do
if [[ $count -gt $b ]]; then
printf '\n'
printf '\e[0m'
exit 1
fi
printf '\e[%s;%s;%sm%-5s' "$i" "$j" "$n" "${array[$count]}"
printf '\e[0m'
let count=$count+1
done
printf '\n'
done
done
#printf '\n'
printf '\e[0m'
exit 0
问题是当我这样启动时
. color.sh arg
或者没有参数,它只是关闭。我知道原因是exit。有什么方法可以纠正我的代码,这样我就可以在开始时用点启动一个脚本,并且终端在执行后不会关闭?我不想这样开始:./script
【问题讨论】:
-
删除
exit? -
不给
exit打电话怎么样?! -
你们都忘记了
exits 里面有多个ifs。 -
如果您的目的是获取文件 (ss64.com/bash/source.html) 并且如果您使用 exit 它肯定会关闭当前 shell。可用的选项有: 1. 不要在脚本中使用 exit 2。不要源文件而是直接执行它。