![如何区分用户输入的文件路径和字符串](https://linux22.com/image/156941/%E5%A6%82%E4%BD%95%E5%8C%BA%E5%88%86%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5%E7%9A%84%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84%E5%92%8C%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我正在寻找 - 如何适应 - 自动区分用户输入文件位置和字符串(可以是一个字符串或每行一个字符串列表)?
#!/bin/bash
fun1(){
arrDomains=()
while read domain
do
arrDomains+=($domain)
done
for i in ${arrDomains[@]}
do
echo $i
done > $file_path
return
}
fun2(){
echo "File path is $file_path"
}
read -p "specify the file path or paste domain list" file_path
###### If I specify the file path it should call function - fun2
###### If I copy paste domain list it should call funtions fun1 & fun2
示例-第一个场景:当我输入文件位置时
specify the file path or paste domain list
/tmp/filelist
第二种情况:当我复制粘贴名称时
specify the file path or paste domain list
name1.w.corp
name2
name3.bz.co
...
...
答案1
您将无法以这种方式粘贴域列表,但您可以检查输入是否是文件:
read -p "specify the file path or paste domain list" file_path
if [[ -f "$file_path" ]]; then
fun2
else
fun1
fun2
fi