gpt4 book ai didi

Linux shell 脚本,缩短脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:41:28 26 4
gpt4 key购买 nike

我有以下脚本:

#!/bin/sh
cd $2
ls *.$1 | wc -l

我运行它:./myct java test

其中java和test是我传递的参数

总的来说,我最近开始学习shell脚本,我喜欢玩它,所以我想知道是否可以让这个脚本更短?

谢谢

最佳答案

当文件名包含换行符(请参阅 http://mywiki.wooledge.org/ParsingLs )和/或您的参数包含通配符(谷歌引用 shell 变量)或您的目录为空(谷歌 nullglob)或不存在或.. . 使用 bash 获取当前目录中具有给定扩展名的文件数量的一种可靠方法是:

shopt -s nullglob
arr=( "$2"/*."$1" )
echo "${#arr[@]}"

例如:

$ ls tmp
1.java 2.java 'a'$'\n''b.java'

$ cat tst.sh
echo "Wrong:"
ls $2/*.$1|wc -l

echo "Right:"
shopt -s nullglob
arr=( "$2"/*."$1" )
echo "${#arr[@]}"

$ ./tst.sh java tmp
Wrong:
4
Right:
3

关于Linux shell 脚本,缩短脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47979316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com