Использовать dirname "$0"
:
#!/bin/bash
echo "The script you are running has basename `basename "$0"`, dirname `dirname "$0"`"
echo "The present working directory is `pwd`"
использование pwd
один не будет работать, если Вы не запустите скрипт из каталога, он содержится в.
[matt@server1 ~]$ pwd
/home/matt
[matt@server1 ~]$ ./test2.sh
The script you are running has basename test2.sh, dirname .
The present working directory is /home/matt
[matt@server1 ~]$ cd /tmp
[matt@server1 tmp]$ ~/test2.sh
The script you are running has basename test2.sh, dirname /home/matt
The present working directory is /tmp
Я немного знаю Python, но после небольшого поиска в Google, вы должны использовать Writerows (с S), который записывает несколько строк, а не Writerow, который ожидает одну строку.
Как я уже сказал, это немного укол в темноте от меня.
import pymysql
import sys
import csv
connection = pymysql.connect(host='abcde',
user='admin',
password='secret',
db='databaseName',
port=12345)
dbQuery="SELECT field1, field2, fieldn FROM database.table;"
cur=connection.cursor()
cur.execute(dbQuery)
rows=cur.fetchall()
column_names = [i[0] for i in cur.description]
fp = open('DimDevice.csv', 'w')
myFile = csv.writer(fp, lineterminator = '\n')
myFile.writerow(column_names)
myFile.writerows(rows)
fp.close()