当通过一个文件夹循环
for f in $path
Run Code Online (Sandbox Code Playgroud)
我遇到了意外的行为,即即使没有文件与通配符匹配,仍然会进入循环。我正在使用 cygwin,这是我的代码
#!/bin/sh
here=$(pwd)
release(){
release="$1"
targetdisk="$2"
package="$3"
searchPath="../$package/${package}Setup/*/*/*.msi"
echo $searchPath
ls $searchPath
for f in $searchPath; do
mode=$(echo $file | sed -e 's:.*/.*/\(.*\)/.*\.msi:\1:')
version=$(echo $file | sed -e 's:.*/\(.*\)/.*/*.\.msi:\1:')
PREVIOUSIFS=$IFS
IFS=#
targetPath="$targetdisk:\\Software and tools\\Install\\$release"
newFile="$targetPath\\$package-$mode-$release.exe"
if [ ! -d "$targetPath" ]; then
mkdir -p "$targetPath"
fi
echo $newFile
echo $f
#cp $file $newFile
IFS=$PREVIOUSIFS
done;
}
release $1 $2 MyStuff
Run Code Online (Sandbox Code Playgroud)
我故意放置了不存在的 MyStuff:
$ ./release.sh 1.0-dev G
../MyStuff/MyStuffSetup/*/*/*.msi
ls: ../MyStuff/MyStuffSetup/*/*/*.msi: No such file or directory …
Run Code Online (Sandbox Code Playgroud) 我有一个从 SSH 运行的脚本,它启动了几个进程,当我与会话断开连接时,我希望这些进程保持打开状态。
那可行吗?在后台启动脚本不是解决方案....
更新
我的脚本使用不同的类路径启动一个 java 进程并调用其他 4 个脚本,每个脚本使用不同的类路径启动不同的 java 进程。