script-detector.sh

#!/bin/bash
#Description:check all Shells in given one directory.

#测试前两个字符
testchars=2
#默认脚本都是以"#!"开头的
shabang='#!'

#遍历当前目录(只针对当前目录)下的所有文件
for file in *
do
 if [[ $(head -c$testchars "$file") = "$shabang" ]];then
 #-c:从文件开头输出制定个数的字符,而不是默认的行数
   echo "File \"$file\" is a script."
 else
   echo "File \"$file\" is not a script."
 fi
done

exit 0
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

验证:

[root@logstash ~]# sh script-detector.sh 
File "1.txt" is not a script.
File "22.sh" is a script.
File "2.txt" is not a script.
File "access_20240624.log" is not a script.
File "account.sh" is a script.
File "add_description.sh" is a script.
File "add_firewalld_rule.sh" is a script.
File "anaconda-ks.cfg" is not a script.
File "auto_backup_system.sh" is a script.
File "awk.sh" is a script.
File "back_mysql.sh" is a script.
File "backup.sh" is a script.
File "call_names.sh" is a script.
File "check_rpm.sh" is a script.
File "chess.sh" is a script.
File "clear_record_file.sh" is a script.
File "close_machines.sh" is a script.
File "create_lv.sh" is a script.
File "crontab.sh" is a script.
File "date.sh" is a script.
File "delete_file.sh" is a script.
File "digital_file.sh" is a script.
File "disable_selinux.sh" is a script.
File "display_account.sh" is a script.
File "display_cpu.sh" is a script.
File "display_port.sh" is a script.
File "domains.txt" is not a script.
File "double-colored-ball.sh" is a script.
File "double-colored-ball.txt" is not a script.
File "download_pic.sh" is a script.
File "egrep.sh" is a script.
File "ens32_packet.sh" is a script.
File "expect_command.sh" is a script.
File "fdisk_disk.sh" is a script.
File "fibonacci_sequence.sh" is a script.
File "file_comparison.sh" is a script.
File "file_directory.sh" is a script.
File "file_limits.sh" is a script.
File "file.sh" is a script.
File "ftp.sh" is a script.
File "generate_certificate.sh" is a script.
File "generate_random_code.sh" is a script.
File "generate_string_pass.sh" is a script.
File "generate_urandom.sh" is a script.
File "generate_uuid.sh" is a script.
File "graph.sh" is a script.
File "guess_number.sh" is a script.
File "helloworld.sh" is a script.
File "hive.output" is a script.
File "hive-server2.log" is not a script.
File "hive.sh" is a script.
File "host.info" is not a script.
File "hostname-bak.txt" is not a script.
File "hostname.sh" is a script.
File "hostname.txt" is not a script.
File "inotifywait.sh" is a script.
File "Jan-Ken-Punch.sh" is a script.
File "jdk-11.0.10_linux-x64_bin.tar.gz" is not a script.
File "judge_data_type.sh" is a script.
File "judge_leap_year.sh" is a script.
File "judge_user_level.sh" is a script.
File "judge_user_passwd.sh" is a script.
File "judge_yes_no.sh" is a script.
File "lamp.sh" is a script.
File "logback.sh" is a script.
File "log_count.sh" is a script.
File "logstash-7.11.1-linux-x86_64.tar.gz" is not a script.
File "lowercase_uppercase.sh" is a script.
File "mac.sh" is a script.
File "md5_check.sh" is a script.
File "monitor_http.sh" is a script.
File "multiplication_table.sh" is a script.
File "mysql_count.sh" is a script.
File "mysql_ping.sh" is a script.
File "network_statics.sh" is a script.
File "nginx_ip.sh" is a script.
File "nginx_time_ip.sh" is a script.
File "nginx_time_statics_ip.sh" is a script.
File "number_length.sh" is a script.
File "optimize_kernel.sh" is a script.
File "parameter.sh" is a script.
File "process_bar.sh" is a script.
File "process.sh" is a script.
File "read.sh" is a script.
File "root_count.sh" is a script.
File "rsyncd.sh" is a script.
File "schedule-bak.sh" is a script.
File "script-detector.sh" is a script.
File "self-destruct.sh" is a script.
File "server_source_cpu.sh" is a script.
File "server_source_disk.sh" is a script.
File "server_source_memory.sh" is a script.
File "server_source_tcp_status.sh" is a script.
File "split_nginx_log.sh" is a script.
File "ssh_key.sh" is a script.
File "statistic.sh" is a script.
File "sum.sh" is a script.
head: error reading ‘test’: Is a directory
File "test" is not a script.
File "text.sh" is a script.
File "time.sh" is a script.
File "tmp.sh" is a script.
File "tomcat_pid.sh" is a script.
File "tomcat_restart.sh" is a script.
File "tomcat.sh" is a script.
File "t.sh" is a script.
File "user_account.sh" is a script.
File "user_add.sh" is a script.
File "useradd.sh" is a script.
File "user_del.sh" is a script.
File "user_get_passwd.sh" is a script.
File "user_list.txt" is not a script.
File "user.txt" is not a script.
File "website_check.sh" is a script.
File "zombie.sh" is a script.
head: error reading ‘ztj’: Is a directory
File "ztj" is not a script.
File "ztj.sh" is a script.
File "ztj.txt" is not a script.
[root@logstash ~]#
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.