( if [ -z "$1" ] ) 条件在 bash 编程中意味着什么

Sar*_*kar 2 macos bash

我有一个脚本如下:

#!/bin/bash

if [ -z "$1" ]; then
        echo "Missing output folder name"
        exit 1
fi

split -l 10000 --additional-suffix=.ordtmp orders.txt orders

for f in `ls *.ordtmp`; do
        if [ "$2" == "local" ]; then
                mv $f $1
        else
                hdfs dfs -copyFromLocal $f $1
                rm -f $f
        fi
        sleep 3
done
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,出现以下错误:

(base) 01HW993798:ch06 tcssig$ ./splitAndSend.sh
Missing output folder name
Run Code Online (Sandbox Code Playgroud)

文件是否期望在运行时提及输出文件夹?

小智 6

$1表示输入参数,-z表示未定义或空

\n

您\xe2\x80\x99正在测试运行脚本时是否定义了脚本的输入参数

\n