0

作業ログにテキストを追加するために使用する小さなスクリプトを Python で作成しました。$PATH のディレクトリにスクリプトを配置しました

#!/usr/bin/python

# import necessary modules
import sys
import os
import datetime


# main() function
def main():
  now = datetime.datetime.now()

  tmp = ' '.join(sys.argv[1:])

  outfile = '/path/to/output/done.log'

  outstr = now.strftime("%Y-%m-%d %H:%M:%S") + ' - ' + tmp + '\n'

  f=open(outfile,'a')
  f.write(outstr)
  f.close()

  # print sys.argv[0:1]
  print 'Adding ' + outstr

# Call main()
if __name__ == '__main__':
  main()

例 1 のようにスクリプトを実行すると、エラーが発生します。

例 1:

host:scripts user$ done this is a test
-bash: syntax error near unexpected token `done'

例 2 のようにスクリプトを実行すると、期待どおりに動作します。

例 2:

host:scripts user$ python done this is a test
Adding 2012-11-15 09:57:44 - this is a test

最初の例でこれを機能させるにはどうすればよいですか?

4

1 に答える 1

4

doneは bash キーワードであるため、「Bash がコマンド名を期待する場所」などの特定の場所では使用できません。./done(または/path/to/done、または)を使用するかpython /path/to/done、コマンドの名前を変更できます。

于 2012-11-15T18:03:14.120 に答える