bash - ( if [ -z "$1" ] ) 条件在 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
当我尝试运行它时,出现以下错误:
(base) 01HW993798:ch06 tcssig$ ./splitAndSend.sh
Missing output folder name
文件是否需要在运行时提及输出文件夹?
解决方案
$1 表示输入参数,-z 表示未定义或为空
您正在测试在运行脚本时是否定义了脚本的输入参数
推荐阅读
- c++ - 如何使用“make_shared”创建指针
- javascript - 将签名 png 发送到 PDFotter api
- angular - WebAPI + Angular项目上的AzureAd令牌刷新CORS错误
- html - 如何在 DataTable 中创建带有填充数据的表格的表格?
- java - 根据用户输入以 ASCII 艺术风格绘制心形
- scenekit - 在scenekit中对象到其他对象的投影轮廓
- photoshop - Photoshop:打开时将 jpeg 转换为 16 位的脚本
- jenkins - 詹金斯管道切割日志
- python - 使用python pandas过滤/迭代列中的每个项目
- typescript - 有什么方法可以过滤{}不放额外的地图吗?