>

저리가 넘어졌다. 내 /home 에 스크립트가 있습니다  실행 가능한 디렉토리 :

[user@server ~]$ ll
total 4
-rwx------ 1 user user 2608 Jul 15 18:23 qa.sh

그러나 pyzwyz로 실행하려고 할 때  찾을 수 없다고 말합니다 :

sudo

이것은 새로운 빌드입니다. 문제점을 야기하는 변경 사항이 없습니다. 실제로 스크립트의 요점은 Google 정책에 따라 실제로 작성되도록하는 것입니다. 어쩌면 그것은 [user@server ~]$ sudo ./qa.sh [sudo] password for user: sudo: unable to execute ./qa.sh: No such file or directory 가 아닐 수도 있습니다.  실제로 빌드 중에 깨져 있습니까?

또한 sudo 를 실행할 수 있습니다.  다른 디렉토리의 다른 명령과 함께.

편집 : 스크립트 (나는 그것을 작성하지 않았으므로 sudo 하지 마십시오  제발 저에게;))

/bin/bash

#! /bin/bash . /root/.bash_profile customer=$1 if [ -z "$customer" ]; then echo "Customer not provided. Exiting..." exit 1 fi space () { echo echo '###########################################################################' echo '###########################################################################' echo '###########################################################################' echo } g=/bin/egrep $g ^Listen /etc/ssh/sshd_config $g ^PermitR /etc/ssh/sshd_config $g ^LogL /etc/ssh/sshd_config $g ^PubkeyA /etc/ssh/sshd_config $g ^HostbasedA /etc/ssh/sshd_config $g ^IgnoreR /etc/ssh/sshd_config $g ^PermitE /etc/ssh/sshd_config $g ^ClientA /etc/ssh/sshd_config space $g 'snyder|rsch|bream|shud|mweb|dam|kng|cdu|dpr|aro|pvya' /etc/passwd ; echo ; echo ; $g 'snyder|rsch|bream|shud|mweb|dam|kng|cdu|dpr|aro|pvya' /etc/shadow space $g 'dsu|scan' /etc/passwd ; echo ; echo ; $g 'dsu|scan' /etc/shadow space $g ${customer}admin /etc/passwd space chage -l ${customer}admin space $g 'urs|cust|dsu' /etc/sudoers space $g dsu /etc/security/access.conf space $g account /etc/pam.d/login space /sbin/ifconfig -a | $g addr | $g -v inet6 space echo "10.153.156.0|10.153.174.160|10.120.80.0|10.152.80.0|10.153.193.0|172.18.1.0|10.153.173.0" echo $g '10.153.156.0|10.153.174.160|10.120.80.0|10.152.80.0|10.153.193.0|172.18.1.0|10.153.173.0' /etc/sysconfig/network-scripts/route-eth1 space cat /etc/sysconfig/network-scripts/route-eth2 space netstat -rn | tail -1 space cat /etc/sysconfig/iptables space cat /etc/hosts space ##file /usr/local/groundwork ; echo ; echo ; /sbin/service gdma status ##space cat /etc/resolv.conf space HOSTNAME=`echo $HOSTNAME | awk -F. '{ print $1 }'` nslookup ${HOSTNAME} echo echo nslookup ${HOSTNAME}-mgt echo echo nslookup ${HOSTNAME}-bkp space /sbin/service rhnsd status ; echo ; echo ; /sbin/chkconfig --list rhnsd ; echo ; echo ; yum update --security space /sbin/service osad status ; echo ; echo ; /sbin/chkconfig --list osad space /sbin/service sshd status ; echo ; echo ; /sbin/chkconfig --list sshd space /sbin/service snmpd status ; echo ; echo ; /sbin/chkconfig --list snmpd ; echo ; echo ; echo ; cat /etc/snmp/snmpd.conf space df -h space cat /proc/cpuinfo | $g ^processor space free -g space if [ -f /etc/rsyslog.conf ]; then tail -3 /etc/rsyslog.conf else echo "This system is not running rsyslog." fi rm -f $0
  • 답변 # 1

    이것은 보통 셰방 ( #! ) ) 스크립트의 줄이 깨졌습니다.

    shebang은 커널이 인터프리터를 사용하여 파일을 실행해야한다는 것을 알려주는 것입니다. sudo 없이 실행할 때 메시지는 좀 더 의미가 있습니다. 그러나 sudo 와 함께  받은 메시지가 나타납니다.

    예 :

    $ cat test.sh
    #!/bin/foo
    echo bar
    $ ./test.sh
    bash: ./test.sh: /bin/foo: bad interpreter: No such file or directory
    $ bash test.sh
    bar
    $ sudo ./test.sh
    sudo: unable to execute ./test.sh: No such file or directory
    $ sudo bash ./test.sh
    bar
    
    

    와이즈 비즈  메시지는 그것이 잘못된 shebang임을 나타냅니다.

  • 답변 # 2

    이 정확한 문제가 있었는데, 텍스트 파일 인코딩 문제로 밝혀졌습니다. Xubuntu 14.04.3 LTS를 실행하는 동안 문제를 해결하기 위해 dos2unix를 설치하고 스크립트 인코딩을 변환 한 다음 sudo를 사용하여 스크립트를 다시 실행하면 정상적으로 작동했습니다. 아래에서 예를 찾을 수 있습니다.

    bad interpreter
    
    
    sudo apt-get install dos2unix -y dos2unix test.sh sudo chmod u+x test.sh && sudo ./test.sh

  • 이전 wget으로 단 하나의 텀블러 페이지를 다운로드하십시오
  • 다음 posix - sed의 'i \'명령에 대한 인수를 들여 쓰는 것이 이식 가능합니까?