나는이 질문에 대해 내 엉덩이를 나에게 줄 것이라고 확신하지만, 나는 그것을 이해할 수 없다. 스크립팅을 처음 접했으므로 나에게 쉽게 가십시오 …
파일을 데스크톱 응용 프로그램으로 끌어다 놓을 수 있고 bash 스크립트를 호출하여 bash 스크립트 내에 지정된 위치로 해당 파일을 이동시킵니다. 여기까지의 내용이 있습니다.
배쉬 스크립트
#! /bin/bash
mv $file /path/to/new/directory
그러나 $file
변수를 데스크톱 응용 프로그램으로 끌어서 놓을 때 변수 로 입력하는 방법을 알 수 없습니다 . 어떻게해야합니까?
이유 : 한 폴더에서 읽어야하는 서류가 있는데 일단 읽고 나면 다른 폴더에 넣습니다. 나는 기본적으로 이것을 쉽게하기를 원합니다.
고마워, 폴
답변
-
다음 내용으로 bash 스크립트 파일을 작성하십시오.
#!/bin/bash mv "$1" "PATH_TO_NEW_DIRECTORY"
-
다음 내용으로 .desktop 파일을 만듭니다.
[Desktop Entry] Name=Document Mover Exec=PATH_TO_SCRIPT_FILE %U Type=Application
-
PATH_TO_NEW_DIRECTORY 및 PATH_TO_SCRIPT_FILE을 원하는대로 변경하십시오.
-
하다
chmod +x script_name
-
파일을 .desktop 파일로 끕니다.
-
끝난!.
답변
스크립트가 필요 없습니다. 필요한 곳에 PATH_TO_NEW_DIRECTORY에 대한 링크를 작성하십시오. 그런 다음 파일을 링크로 드래그하십시오.
답변
@ Slug45가 말한 것은 완전히 정확합니다. 그러나 설명이 부족합니다.
파일을 실행 파일 (또는 파일에 대한 링크)로 끌어서 놓으면 드래그 된 파일의 경로를 인수로 사용하여 해당 실행 파일이 실행됩니다. 이것은 Windows에서 정확히 동일합니다 (실제로 중요하지는 않습니다).
Bash는 인수를 다루는 간단한 방법을 가지고 있습니다. "$@"
따옴표와 함께 사용 하여 모든 인수의 배열을 가져옵니다 (예 : for..in 루프에서 유용). $@
,, "$*"
및 $*
비슷한 일을하지만 거의 항상 원합니다 "$@"
. 세부 사항에 대한 자세한 정보는 여기 를 참조 하십시오 .
또한 $X
X가 인수 번호 인 것처럼 특정 인수에 직접 액세스 할 수 있습니다 . 예를 들면 다음과 같습니다.
$ cat ./args.sh
echo $1
echo $2
echo $3
$ ./args.sh foo bar baz
foo
bar
baz
$
큰 스크립트에서는 명명 된 변수에 해당 스크립트를 할당하는 것이 좋습니다.
$ cat music.sh
#!/bin/bash
# Usage: ./music.sh Artist Album Song
ARTIST=$1
ALBUM=$2
SONG=$3
if [ $ARTIST -eq "Nickelback" ]; then exit; fi
mplayer ~/Music/$ARTIST/$ALBUM/$SONG.mp3